在我的 MVC 应用程序中,我有一个这样定义的控制器:
Ext.define('NE.controller.MyController', {
extend: 'Ext.app.Controller',
stores : [...'StoreAgents'..],
views: [ ...'MyView'...], // * alias w_view
init: function() {
this.control({
'w_view': {
render: function() { this.getStore('StoreAgents').load(); }
}
});
}
});
在 MyView 视图中,我定义了一个组合框,如下所示:
{
xtype: 'combobox',
name : 'id_agent',
forceSelection: true,
fieldLabel: 'Agent',
store: 'StoreAgents',
queryMode: 'local',
displayField: 'name',
valueField: 'id'
}
我希望每次呈现视图时都会更新组合框列表,我错了吗?目前,组合框仍然没有任何选项,即使我(通过萤火虫)看到应用程序触发了正确返回所有代理数据的请求。
此外,我注意到,每当我浏览由另一个控制器管理的另一个视图时,该控制器又声明另一个 StoreAgent 并调用其 load() 方法。好吧,如果我回来,现在我看到组合框已填充。
我错过了什么?谢谢
编辑:
我注意到商店是{buffered: true}
. 如果我将其切换为 false,则商店会触发“datachange”事件;否则它不会。所以现在的问题是:为什么如果启用缓冲,load() 不会触发“datachange”?