2012-06-07 36 views
0

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

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

+0

没明白你想要什么。你有什么尝试?什么没有奏效? – Vytautas

回答

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}); 
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应用程序内部调用所需的方法即可。

+0

谢谢,我会试试看看它是如何发展的。在不得不包含很多JavaScript文件的情况下,我觉得这会更好。 – theannouncer