【问题标题】:extjs - Add data to Store from external Javascriptextjs - 从外部 Javascript 向 Store 添加数据
【发布时间】:2012-06-07 06:00:51
【问题描述】:

我有一个使用 EXTJS4 MVC 结构的带有商店的图表,我通过另一个 javascript 文件从在线 api 获取数据,我想知道是否可以在外部将数据添加到商店,以便在我调用 store 时加载.load()。

外部js不是extjs也不是mvc的一部分,它运行在我图表后面的页面上。我是否必须将所有逻辑转移到 extjs 控制器中?有没有办法从外部 js 调用 extjs 方法?谢谢。

【问题讨论】:

  • 不明白你想要什么。你试过什么?什么没用?

标签: javascript extjs extjs4


【解决方案1】:

确实有一些方法可以从 ExtJS 特定代码之外调用 ExtJS 对象上的方法,毕竟它只是 JS。

您需要从您的 ExtJS 代码中公开一个方法,该方法返回一个引用来说明图表,类似于以下内容(在 ExtJS 代码中):

function getChart() {

    return Ext.getCmp('myChartID');

}

然后在你的外部 JS 中,你可以这样做:

var data = ...; // This is where you can get your external data

var chart = getChart();

chart.load(data);

这取决于从 ExtJS 公开方法的能力,因此您需要能够引用。

尝试调用该方法从 ExtJS MVC 应用程序中检索数据可能会更容易。如果加载了您的外部 JS 文件,它可能会返回对自身的引用,您可以调用它的方法。因此,考虑到这一点,只需从 ExtJS 应用程序中调用您需要的方法即可。

【讨论】:

  • 谢谢,我会试试看效果如何。在必须包含许多 JavaScript 文件的情况下,我觉得这会更好。
【解决方案2】:

最终使用以下方式访问本地 js 文件。

var url = "url.js";
var onload = function () {
    console.log('url loaded');
};
var onerror = function () {
    console.log('error loading analytics functions');
};
Ext.Loader.injectScriptElement(url, onload, onerror, scope);

确保在 app.js 中像这样启动 Ext.Loader:

Ext.Loader.setConfig({enabled:true});

【讨论】:

    猜你喜欢
    • 2017-02-02
    • 1970-01-01
    • 2012-07-20
    • 1970-01-01
    • 2011-11-04
    • 2018-04-24
    • 2021-03-02
    • 2021-02-01
    • 1970-01-01
    相关资源
    最近更新 更多