我将我的extjs4应用程序设计为mvc。 有时,在某些不清楚的情况下,当我从控制器将远程数据加载到存储中时,视图不会反映更改;这适用于组合框和网格。 这就像我错过了关于extjs设计的一些东西,有了这个问题,我希望能让事情更加清晰。
考虑这个不适合我的例子:
控制器:
...
init: function() {
this.control({
// * This is the alias of a grid panel.
// * When I dbl-click a record, I want to display it in a modal window
'w_fares_index': {
itemdblclick: function(grid, record) {
var view = Ext.widget('w_fares_edit');
view.down('form').loadRecord(record);
var store = this.getStore('StoreBillsModels');
store.load({
params: {
'where': {
"id_fare": record.get('id')
}
}
});
}
},
...
视图:
...
extend: 'Ext.window.Window',
alias : 'widget.w_fares_edit',
...
items[{
xtype: 'form',
...
}, {
xtype: 'gridpanel',
store: 'StoreBillsModels',
columns: [{
header: 'Id',
dataIndex: 'id',
flex: 1
}, ...]
}]
使用此代码,将打开新的模态窗口,并将单击的记录加载到表单中。但是,即使存储了StoreBillsModels商店(我可以看到它分析网络请求),新窗口内的网格面板也不会显示任何记录。
另外,我注意到一些奇怪的事情:
我在组合框中遇到了或多或少相同的问题。就像我在实现视图的同一个函数中填充商店一样,然后商店消费者不会反映商店的变化。
有人可以帮忙吗?
答案 0 :(得分:0)
解决方案:
我的商店有这个属性:
buffered: true
我不知道为什么,但如果商店是缓冲的,我会遇到上面提到的问题。 我通过设置来解决问题:
buffered: false