Javascript extjs存储更新未启动

Javascript extjs存储更新未启动,javascript,extjs,data-persistence,Javascript,Extjs,Data Persistence,我使用的是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' } }}); 我想从控制器处理其更新事

我使用的是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');
   }

但当我更新存储时,它不会显示任何内容,请问我做错了什么?

在控制器中定义存储时,首先要使用存储的完整路径名

...
stores: ['Proj.store.GraphData'],
...
另外,我认为您正在寻找的侦听器应该是
load
。根据文档,更新模型实例后,
update
将触发<每当存储从远程数据源读取数据时,代码>加载就会触发


代码中一个非常相关的部分是您实际“更新”存储的部分。我的感觉是,也许你误解了事件应该在什么时候发生。添加侦听器的方式应该有效。使用完整路径名不会改变任何内容。在这个上下文中,它不是必需的,因为存储和控制器共享相同的名称空间。
me.getGraphDataStore().addListener('load',this.onStoreUpdate, this);