2012-05-22 32 views
2

我有一个像ProjectsControllerExtJS4控制器没有得到店(空)

Ext.define('SimpleTodo.controller.ProjectsController', { 
    extend: 'Ext.app.Controller', 
    refs: [ 
     { ref: 'addProjectPanel', selector: '#addProjectPanel' } 
    ], 
    init: function() { 
     this.control({ 
      'button[action=addProject]': { 
       click: this.addProject 
      } 
     }); 
    }, 
    addProject: function() { 
     var form = this.getAddProjectPanel().getForm(); 
     if (form.isValid()) { 
      var projectsStore = Ext.data.StoreManager.lookup('projects'); // Am getting null here 
      projectsStore.add(form.getFieldValues()); 
      projectsStore.sync(); 
     } else { 
      Ext.Msg.alert('INVALID!'); 
     } 
    } 
}); 

我相信这个问题是因为店里尚未初始化?那么我应该如何修改我的代码?我店的定义如下:

Ext.define('SimpleTodo.store.Projects', { 
    extend: 'Ext.data.Store', 
    requires: [ 
     'SimpleTodo.model.Project' 
    ], 
    model: 'SimpleTodo.model.Project', 
    storeId: 'projects'  
}); 

试图加载我的商店时,从而填充我的GridView /表一中遇到同样的问题。我通过移动函数启动来修复它,想知道这是否正确?在文档中,使用init

Ext.define('SimpleTodo.controller.SidebarController', { 
    extend: 'Ext.app.Controller', 
    ... 
    launch: function() { 
     var projectsStore = Ext.data.StoreManager.lookup('projects'); 
     projectsStore.load(); 
    }, 

回答