0

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

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

4

2 回答 2

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 应用程序中调用您需要的方法作为替代方法。

于 2012-06-07T09:52:10.893 回答
0

最终使用以下内容访问本地 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});
于 2012-06-26T22:10:14.040 回答