我在表单的boxready
事件或对话框完全呈现之前发生的任何其他事件(组合框的afterrender
等)上对组合框的商店执行任何操作时遇到问题。
E.g。类似this.getCombobox().getStore().removeAll()
之类的东西可以完美地处理在窗体上触发的任何事件,除了最初在对话框/元素加载期间发生的事件...
答案 0 :(得分:0)
在表单上对组合框的商店执行任何操作时出现问题 boxready事件或在对话框之前发生的任何其他事件 完全渲染(组合框的后期渲染等)
Ext.widget({
xtype: 'form',
items: [
{
xtype: 'combo',
store: Ext.create('Ext.data.Store', {
fields: ['abbr', 'name'],
data : [
{"abbr":"AL", "name":"Alabama"},
{"abbr":"AK", "name":"Alaska"},
{"abbr":"AZ", "name":"Arizona"}
]
}),
fieldLabel: 'Choose State',
queryMode: 'local',
displayField: 'name',
valueField: 'abbr',
listeners: {
'afterrender': function() {
console.log("combo's afterrender");
}
}
}
],
renderTo: Ext.getBody(),
listeners: {
'boxready': function() {
console.log("form's boxready");
this.down('combo').getStore().setData([
{"abbr":"ME", "name":"Middle Earth"}
]);
},
'afterrender': function() {
console.log("form's afterrender");
}
}
});
顺便说一句,正如您在小提琴中看到的那样,boxready
发生在afterrender
之后,而不是之前。