我绝对是ExtJS和javascript框架的新手,这是一个死的简单问题,但我似乎无法找到一个例子。
我试图找出我应该如何简单地将主机html页面中的初始参数传递给ExtJS 4应用程序 - 在应用程序的托管html页面中,ExtJS 4相当于这个非常简陋的行:
var myapp = new MyApp({param1:'value1', param2:'value2'});
我看到的一切:在线示例在启动时最初不会将参数传递给应用程序。这不是正确的想法或什么......?
答案 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
所以,我认为非常干净的解决方案适用于您的应用程序范围设置。 干杯!