ExtJS 5:设置初始化的配置变量获胜'从控制器设置后不要粘住
ExtJS 5: Setting initialized config variables won't stick after setting from controller
在一个控制器上,我有一个函数处理一个向下钻取,该函数在另一个控制器的配置变量上设置该记录的信息。
似乎从第一个控制器开始就设置好了。当它切换到另一个控制器时,它表示这些变量是未定义的。发生了什么事?
控制器处理钻取:
// Set site name for Site Summary
MyApp.app.getController('otherController').setSiteId(siteId);
MyApp.app.getController('otherController').setSiteName(siteName);
console.log(MyApp.app.getController('otherController').getSiteId());
console.log(MyApp.app.getController('otherController').getSiteName());
// Prints out the correct values that are supposed to be set
其他值不固定的控制器:
Ext.define('MyApp.controller.otherController', {
extend: 'Ext.app.Controller',
config: {
siteId: -1,
siteName: ''
},
init: function() {
this.listen( {
component: {
'somePnl': {
beforerender: this.onBeforeRender
},
// stuff
onBeforeRender: function() {
console.log("this.siteName = " + this.siteName);
console.log("this.siteId = " + this.siteId);
},
// Prints out 'undefined'
}
我似乎不明白为什么这些变量的设置没有坚持
文件:http://docs.sencha.com/extjs/4.2.1/#/api/Ext.Class-cfg-config
所以使用
console.log("this.siteName = " + this.getSiteName());
console.log("this.siteId = " + this.getSiteId());
是最好的做法,应该做好这项工作。
显然,使用下划线似乎有效。。。
console.log("this.siteName = " + this._siteName);
console.log("this.siteId = " + this._siteId);
相关文章:
- 如何从jQuery设置控制器或全局变量的属性
- 为什么我们将控制器变量设置为等于“0”;这个“;在角度上
- 将外部控制器的范围变量设置为角度
- 设置AngularJS控制器属性不能是使用Coffeescript的最后一行
- 如何在多个控制器之间封装设置$scope值
- 在 AJAX 调用的 zend 控制器操作中正确设置会话
- 设置控制器动态角度
- AngularJS-有条件地为路由设置控制器
- 如何从路由文件中的子文件夹设置控制器文件
- 如何根据信号器请求的结果设置控制器范围
- AngularJS-设置控制器'访问DOM的自定义指令中的$scope变量
- Ember.js设置控制器属性表单组件
- 如何从控制器打开和设置控制器Mobile-Angular模态
- 使用ember试图从路由模型钩子中设置控制器中的值会产生错误
- 最好的做法是从出厂功能设置控制器范围变量
- 应用程序路由中的多个模型,如何设置控制器Ember.JS
- Jasmine:在初始化时设置控制器属性,角度为1.5
- 不能在角材质模态对话框中设置控制器属性
- 如何获取/设置控制器/模块之外的变量
- 从组件内部设置控制器属性