将初始参数传递给ExtJS 4应用程序

时间:2012-02-18 09:41:13

标签: extjs4

我绝对是ExtJS和javascript框架的新手,这是一个死的简单问题,但我似乎无法找到一个例子。

我试图找出我应该如何简单地将主机html页面中的初始参数传递给ExtJS 4应用程序 - 在应用程序的托管html页面中,ExtJS 4相当于这个非常简陋的行:

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

我看到的一切:在线示例在启动时最初不会将参数传递给应用程序。这不是正确的想法或什么......?

2 个答案:

答案 0 :(得分:0)

我通常在页面上创建全局变量,然后在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;

因此,您将拥有一个全球数据入口点。

这就是我这样做的方式,很高兴听到其他人这样做。

答案 1 :(得分:0)

您可以在app / Configuration.js中使用单例配置文件,其中u定义所有变量,全局访问的URL:

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

您现在需要在Application.js文件中要求此文件作为 要求:['myApp.Configuration']预先加载它以便在其他文件中使用,如:

myApp.Configuration.urls.actionURL

所以,我认为非常干净的解决方案适用于您的应用程序范围设置。 干杯!