Extjs Custom事件被触发两次。事件在select事件回调上触发

时间:2014-11-01 08:36:35

标签: extjs extjs5

我有一个组合框。这听取了选择'事件。 我在select事件回调中触发自定义事件。 如果发生变化,此事件将被触发两次。

我有一个类似的组合框连接到同一个控制器,但只有一个事件被触发。

我正在使用ExtJs 5。

这是我的代码。

    {
        xtype: 'combobox',
        width: 150,
        textAlign: 'left',
        store: {
            fields: ['text', 'value'],
            data: [
                {"text": "a", "value": "a"},
                {"text": "b", "value": "b"},
               ]
        },
        allowBlank: false,
        editable: false,
        displayField: 'text',
        valueField: 'value',
        listeners: {
            select: function (combo, records) {
                console.log('comboooo ---------------- ', records[0].data.value);
                this.fireEvent('custom-event', 'key', records[0].data.value);
            },
            afterrender: function (cmp) {
                cmp.setSelection(1);
            }
        }
    }

编辑: 以下是我的申请中的内容。

我有一个MainViewcontroller,MainView和SubView。 SubView是MainView中的一个组件。

我在SubView和MainView中分别有两个组件。 添加MainView后我添加了SubView。

我正在从'更改' MainView组件的事件。 MainController能够识别这一点。此事件仅按预期发生一次。

现在,当我从'更改'中触发相同的自定义事件时SubView组件的事件此事件被触发两次

1 个答案:

答案 0 :(得分:2)

我明白了......

subView和MainView的控制器配置都指向主控制器。

由于subView已经是MainView的一部分,我不需要再次在这里注册控制器。

我在SubView中删除了控制器配置,现在它正在按预期工作。

感谢您的时间@weeksdev:)