【问题标题】:Parameter passing between different JavaScript libraries不同 JavaScript 库之间的参数传递
【发布时间】:2013-02-23 12:50:50
【问题描述】:

在我的应用程序中,我有一个用 extjs 制作的网格,单击每一行时,我需要将该行的选定单元格值传递给另一个 JavaScript 库。因此,为此,我将 html 视为桥梁,如果我能以某种方式获得 html 中的值,那么我认为通过休息将不会是一项艰巨的工作。在这方面,我有几个问题

  1. 我的想法正确吗?
  2. 如果是这样,谁能建议我如何将参数从 extjs 传递到 html?

我正在使用此代码从 Extjs 网格中检索单元格值

    var grid = Ext.getCmp('lineGridChart');
    var selectedRecords= grid.getView().getSelectionModel().getSelection();
    myWTN  = selectedRecords[0].get('wtn');
    myMOU  = selectedRecords[0].get('avg');
    myWING = selectedRecords[0].get('wing');
    myPDU  = selectedRecords[0].get('pdu');

我需要将这些值传递给 d3 或简单的 jquery。

【问题讨论】:

  • 你的问题看起来很简单(你只是调用库)也许一些示例代码可以帮助我们理解问题。
  • 您需要更具体。有哪些图书馆?贴一些代码。我认为 HTML 作为桥梁是最后的机会。这些库应该有一些暴露的接口。
  • 其他库是什么?为什么要使用html?你有 javascript - 使用它!
  • @abhijit 我认为您认为自己陷入了困境。您希望避免直接调用其他库的主要原因是保持组件封装(从而使您的代码可维护),但您可以通过使用事件在组件之间进行调解来做到这一点,例如在您的网格上,您发出一个“row.click”事件并通过一段决定如何处理它的代码来监控它。
  • @RichardMarr 我也在考虑同样的事情(我已经把自己逼到墙角了)。无论如何感谢这个想法,这个例子听起来很棒。谢谢

标签: javascript jquery html extjs d3.js


【解决方案1】:

您可以使用本地存储... 或者只是:

myData  = selectedRecords[0].getData();

更新:

myData = {
    data: {},
    set: function(data) {
        myData.data = data;
        // You jquery logik
    }
};

myData.set(selectedRecords[0].getData());

【讨论】:

  • 感谢您的回复。你能告诉我如何在 jquery 中访问这个 myData,因为我猜 myData 目前在 extjs 上下文中是全局的。
  • myData 是窗口上下文中的全局变量。您可以在 jquery 中使用它。
  • 是的,myData 在窗口上下文中是全局的。我可以使用 jquery 轻松检索值。但是那么jquery将如何获取变量值更改的信息。所以我使用 Ext.get('IDName') 来获取 id,然后使用 set(), update() 来更新变量。但不幸的是,这样做会使 dom 的东西被破坏,因此整个空间变得空白。
  • @abhijit 您可以将 myData 创建为对象,并通过更改它来描述所需的逻辑。我在回答中添加了示例。
猜你喜欢
  • 2014-06-23
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-04-28
  • 2018-02-07
  • 2020-12-22
相关资源
最近更新 更多