2012-06-07 34 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