通常,当我们创建事件处理程序时,我们会这样:
boxready: function (me, width, height, eOpts) {
me.X() <-refers to the component whose event is triggered and calls the function X()
}
但是,我想要这样做:
boxready: {
fn: Ext.bind(this.myFunction, this),
scope: me
}
但由于我不使用function(me, ...)
,我无法访问事件发送的参数。有没有办法让我访问它们以便将它们放在范围属性中?
答案 0 :(得分:0)
为什么要设置范围两次?使用scope
配置(首选)或 Ext.bind
。另外,您在Ext.bind
的返回值上调用myFunction
,除非myFunction
返回函数本身,否则这没有意义。
建议的方法:
listeners: {
boxready: function(me, width, height, eOpts) {
//...
},
scope: this
}
或者如果您有多个需要不同范围的侦听器:
listeners: {
boxready: {
fn: function(me, width, height, eOpts) {
//...
},
scope: this
},
destroy: {
fn: function() {},
scope: this.otherScope
}
}
也可以,但不推荐:
listeners: {
boxready: Ext.bind(function(me, width, height, eOpts) {
//...
}, this)
}