我的控制器出了问题
Ext.define('app.controller.myController', {
init: function() {
this.control({
'#myinputfield': {
change: this.textFieldChange(parameter)
}
})
},
textFieldChange: function(parameter) {
//do something
}
});
它看起来像这样
问题是我在这里给出参数
change: this.textFieldChange(parameter)
然后它在站点加载后启动,我不知道为什么。
没有参数它等待改变事件应该如此 可以帮我吗?
答案 0 :(得分:7)
这是因为:
change: this.textFieldChange
此处您将此函数的引用提供给此属性
change: this.textFieldChange(parameter)
在这里,您将函数的结果提供给此属性(如果我们不使用return,那么它将是undefined
)。
您可以在函数定义中使用eOpts
变量来进行自定义参数发送,请参阅示例:
Ext.define('app.controller.myController', { init: function() { this.control({ '#myinputfield': { change: { fn : this.textFieldChange, params : { param1: 'something' } } } }) }, textFieldChange: function(textfield, newValue, oldValue, eOpts) { var params = eOpts.params; console.log(params.param1); //do something } });