我正在使用Extjs 4.1 MVC,我有一个简单的商店:
Ext.define('Proj.store.GraphData', {
extend: 'Ext.data.Store',
model: 'Proj.model.GraphData',
autoLoad: false,
proxy: {
type: "ajax",
reader: {
type: 'json',
root: 'data'
}
}});
我想从控制器处理它的更新事件,所以这是控制器:
Ext.define('Proj.controller.RenderGraph', {
extend: 'Ext.app.Controller',
stores: ['GraphData'],
models : ['GraphData'],
init: function () {
var me = this;
me.getGraphDataStore().addListener('update',this.onStoreUpdate, this);
this.control({
....
})
},
onStoreUpdate : function () {
alert('OKK');
}
但是当我更新商店时,它没有显示任何内容,请问我做错了什么?
答案 0 :(得分:0)
当您在控制器中定义商店时,首先要使用商店的完整路径名
...
stores: ['Proj.store.GraphData'],
...
另外,我认为您正在寻找的倾听者将是load
。根据文档,update
在模型实例更新时触发。只要商店从远程数据源读取数据,就会触发load
。
http://docs.sencha.com/extjs/4.2.0/#!/api/Ext.data.Store-event-load
me.getGraphDataStore().addListener('load',this.onStoreUpdate, this);