2012-06-07 3 views
0

У меня есть диаграмма с хранилищем с использованием структуры EXTJS4 MVC, и я получаю данные из онлайн-api через другой файл javascript, и я хочу знать, можно ли добавить данные в хранилище извне, поэтому он будет загружаться, когда я вызываю store.load().extjs - Добавить данные в магазин с внешнего Javascript

Внешние js не являются extjs или частью mvc, он работает на странице за моей диаграммой. Должен ли я перевести всю логику в контроллер extjs? Есть ли способ вызвать метод extjs из внешнего js? Благодарю.

+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

Смежные вопросы