在ExtJS中访问事件参数



通常,当我们创建事件处理程序时,我们会这样做:

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, ...),所以我不能访问事件发送的参数。我是否有办法访问它们以便将它们放入scope属性中?

为什么要设置两次作用域?可以使用scope配置(首选) Ext.bind。此外,您在myFunction的返回值上调用Ext.bind,除非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)
}

相关内容

  • 没有找到相关文章

最新更新