我有一个使用EXTJS4 MVC结构的商店图表,我通过另一个javascript文件从在线api获取数据,我想知道是否可以在外部将数据添加到商店,这样当我调用商店时它会加载.load()。
外部js不是extjs或mvc的一部分,它在我的图表后面的页面上运行。我是否必须将所有逻辑转移到extjs控制器中?有没有办法从外部js调用extjs方法?感谢。
答案 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});