Extjs 4.2监听器函数中的参数

Ark*_*z P 5 events controls controller extjs extjs4

我的控制器出了问题

Ext.define('app.controller.myController', {
    init: function() {
        this.control({
            '#myinputfield': {
                change: this.textFieldChange(parameter)
            }
        })
    },
    textFieldChange: function(parameter) {
      //do something
    }
});
Run Code Online (Sandbox Code Playgroud)

它看起来像这样的问题是我在这里给出参数

change: this.textFieldChange(parameter)
Run Code Online (Sandbox Code Playgroud)

然后它在站点加载后点火,我不知道为什么.

没有参数它等待改变事件,它应该可以帮助我吗?

Ale*_*erg 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
    }
});