我有一个组合框。这听取了选择'事件。 我在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组件的事件此事件被触发两次
答案 0 :(得分:2)
我明白了......
subView和MainView的控制器配置都指向主控制器。
由于subView已经是MainView的一部分,我不需要再次在这里注册控制器。
我在SubView中删除了控制器配置,现在它正在按预期工作。
感谢您的时间@weeksdev:)