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

use*_*837 5 extjs4

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

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

var myapp = new MyApp({param1:'value1', param2:'value2'});
Run Code Online (Sandbox Code Playgroud)

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

And*_*sky 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>
Run Code Online (Sandbox Code Playgroud)

然后我直接在需要的地方使用它们。

//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);
            }
        });
Run Code Online (Sandbox Code Playgroud)

也许将所有这些变量收集到一个全局对象中是一个好主意,例如:

var globalVariables = {};
globalVariables.someVariable = 2;
Run Code Online (Sandbox Code Playgroud)

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

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