当initcomponent加载存储extjs 4.1.1时,视图不显示存储

时间:2012-10-19 16:47:12

标签: javascript model-view-controller view treeview extjs4

使用ExtJs 4.1.1

我需要为特定视图的每个实例创建一些商店。所以,我在视图的initcomponent方法中创建这些存储。这是我正在做的一些代码的重构的一部分。我试图使这个视图组件能够用多个实例进行实例化,同时让一个控制器负责所有实例。除了我的目标,这就是我在做的事情:

特定的树库中填充了数据(无论如何,数据最终会在使用firebug验证的商店中结束)。树视图在视图中定义,它将填充的树库作为其存储。但是,当视图出现时。数据不在树视图中。我相信这可能与initComponent运行之前的所有静态配置加载有关,虽然我不确定。如果我能对这个过程有所了解,那将非常有帮助。我想我说this.store1属于视图配置中的视图,但是在视图initComponent中定义this.store1。这是错误的做法吗?

任何建议都表示赞赏。

使用ExtJs 4.1.1

1 个答案:

答案 0 :(得分:2)

只需从控制器的商店列表中删除商店名称,因为这种机制会干扰以某种方式为商店分配ID。以下是我的经验示例:

Ext.define('Adminpanel.controller.MenuManager', {
    extend: 'Ext.app.Controller',
    stores: ['Menu'] // <-- reason
});

Ext.define('Adminpanel.view.menuManager.Tree', {
   extend: 'Ext.tree.Panel',
   initComponent: function() {
       this.store = Ext.create('Adminpanel.store.Menu'); // <-- problem
       this.callParent(arguments);
   }
});