Передача начальных параметров в приложение ExtJS 4 - PullRequest
5 голосов
/ 18 февраля 2012

Я абсолютно новичок в ExtJS и javascript-фреймворках, и это очень простой вопрос, но я просто не могу найти пример.

Я пытаюсь выяснить, как мне просто передать начальные аргументы с html-страницы хостинга в приложение ExtJS 4 - что эквивалентно ExtJS 4 этой очень скромной строке на html-странице хостинга приложения:

var myapp = new MyApp({param1:'value1', param2:'value2'});

Все, что я вижу: примеры в сети не передают аргументы приложению изначально при запуске. Это просто неправильная идея или что-то в этом роде? ..

Ответы [ 2 ]

0 голосов
/ 07 апреля 2015

Вы можете использовать файл конфигурации singleton в app / Configuration.js, где вы определяете все переменные, URL для глобального доступа:

Ext.define('myApp.Configuration', {
        singleton : true,
        urls : { actionURL : /d.php, bgotUrl :abcd.php }
});

теперь вам нужно запросить этот файл в файле Application.js как требует: ['myApp.Configuration'], чтобы загрузить его заранее для использования в других файлах, таких как:

myApp.Configuration.urls.actionURL

Итак, я полагаю, очень чистое решение для настроек вашего приложения. Ура!

0 голосов
/ 18 февраля 2012

Я обычно создаю глобальные переменные на странице, а затем просто использую их в js. Что-то вроде:

//mypage.html

 <script type="text/javascript">
        var loadScansUrl = "<%=Url.Action<ReportScannerRunController>(controller => controller.LoadScans())%>";
        var loadInstancesUrl = "<%=Url.Action<ReportScannerRunController>(controller => controller.LoadInstances(-1))%>";
 </script>

Тогда я использую их прямо там, где мне нужно.

//myfile.js

Ext.Ajax.request({
            url: loadInstancesUrl, // here is the usage!!!
            headers: {
                'Content-Type': 'application/json'
            },
            params: this.scanId,
            scope: this,
            success: function (response) {
                var result = Ext.decode(response.responseText);
                var comboData = [];
                Ext.each(result.Instances, function (instance) {
                    comboData.push({ Value: instance });
                });
                instances.store.loadData(comboData);
            }
        });

Возможно, это хорошая идея собрать все эти переменные в один глобальный объект, например:

var globalVariables = {};
globalVariables.someVariable = 2;

Таким образом, у вас будет одна точка входа в ваши глобальные данные.

Это просто способ, которым я делаю это, приятно слышать, как другие делают.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...