未捕获的TypeError:无法在ExtJs中读取未定义的属性'getRootNode'

时间:2016-03-30 05:10:49

标签: extjs4.1

我正在尝试使用存储中硬编码的商店数据来形成树形检查树,但我无法实现这一点而且我在下面收到此错误

我是extjs的新手,任何人都可以意识到这个问题。

  

未捕获的TypeError:无法读取未定义的属性'getRootNode'

Store
Ext.define('my.store.ModuleHomeStore', {
    extend: 'Ext.data.TreeStore',
    autoLoad : false,
    root: {
        text:'test Object Tree',
        id:'TestTreeStoreId',
        expanded: true,
        children: [{
                          "text":"AntiVirus Software",
                          "id":"46",
                          "leaf":"false"
                       },
                       {
                          "text":"Appliance",
                          "id":"68",
                          "leaf":"false"
                       }
                    ]
    },    
    folderSort: true,
    sorters: [{
        property: 'text',
        direction: 'ASC'
});
}];

views
Ext.define('my.view.MainTree', {
    extend : 'Ext.tab.Panel',
    width : 400,
    height : 600,
    alias : 'widget.MainTreeTest',
    name : 'mainTree',
    plain: true,
    items : [{
                    xtype: 'pTree',         
                    width:219,
                    height:700,
                    bbar: [{
                            xtype: 'button', 
                            text: 'Cancel' 
                            },{
                                xtype: 'button', 
                                text: 'Ok' 
                            }]
            }]
});


Ext.define('my.view.PreTree', {
    extend : 'Ext.tree.Panel',
    title: 'MyPreference',
    alias : 'widget.pTree',
    id : 'preid',
    store: 'ModuleHomeStore',
    height: 600,
    width: 400,
    multiSelect: true,
    rootVisible : false,
    resizable:false,   
    hideHeaders : true,
    sortable : true,
    xtype:'check-tree'
});

1 个答案:

答案 0 :(得分:4)

我为你创造了小提琴。他们有代码的工作示例。 有几点,你知道ExtJs是基于MVC的框架,所以请根据MVC结构实现一切。

在您的视图中,只有与您的代码相关的问题:

store: 'ModuleHomeStore',

未返回商店实例。一种方法是使用Ext.data.StoreManager.lookup来使用查找存储,就像在fiddle中一样。

或者您可以创建完成here的商店实例。

这也是另一个SO question建议的另一种解决方案。但是,您应该实现适当的控制器并分离您的视图,商店,模型以完全控制框架。