extjs - 从外部Javascript向Store添加数据

时间:2012-06-07 06:00:51

标签: javascript extjs extjs4

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

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

2 个答案:

答案 0 :(得分: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应用程序内部调用所需的方法作为替代方案。

答案 1 :(得分: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});