在Ext-JS 4中将参数传递给this.control()之前的函数

时间:2013-05-18 11:54:57

标签: javascript extjs extjs4

我有这个:

{
    listeners['combobox[name="counterparty_id"]'] = {
        afterrender: {
            fn: this.onComboboxCounterpartyAfterrender,
            scope: this
        }
    };      

    this.control(listeners);
}



// function which is being called after rendering the combobox

onComboboxCounterpartyAfterrender: function(combobox, eOpts){

// some code

},

那么,如何向onComboboxCounterpartyAfterrender函数发送其他参数?

也许是这样的:

listeners['combobox[name="counterparty_id"]'] = {
            afterrender: {
                fn: this.onComboboxCounterpartyAfterrender,
                scope: this,
                params: someParameters
            }
        };

2 个答案:

答案 0 :(得分:3)

有很多方法可以做到这一点。

首先,您可以使用eOpts。正如文档所述,eOpts是“传递给Ext.util.Observable.addListener的选项对象。”。因此,在您的示例中,您应该能够使用ePots.params来访问someParametsrs

其次,您可以使用Ext.bind()或Ext.pass()来传递参数。第一个是prepends,第二个是附加参数。

第三,你可以做Amit Aviv所建议的,这几乎是Ext.pass()所做的。

第四,如果可能的话,你可以使用范围。

答案 1 :(得分:1)

可能有更好的方法,但你可以这样做:

listeners['combobox[name="counterparty_id"]'] = {
    afterrender: {
        fn: function(combobox, eOpts) {
            this.onComboboxCounterpartyAfterrender(combobox, eOpts, params)
        }
        ...