将静态数据加载到Ext.data.TreeStore

sha*_*unc 3 extjs extjs4

我可以将一些静态数据加载到Ext.data.TreeStore实例吗?对于Ext.data.Store来说非常简单 - 我们所要做的就是将数据参数添加到配置中.

但我无法看到Ext.data.TreeStore这样的东西.

小智 13

使用内存代理创建TreeStore实例,然后将商店的ROOT NODE设置为您已获得的静态数据.

Ext.define('Task', {
    extend: 'Ext.data.Model',
    fields: [
        {name: 'task', type: 'string'},
        {name: 'user', type: 'string'}
    ]
});

var store = Ext.create('Ext.data.TreeStore', {
    model: 'Task',
    proxy: {
        type: 'memory'
    },
    folderSort: true
});

var data = {
    "text":".",
    "children": 
        [
            {
                task:'Project: Shopping', 
                user:'Will', 
                iconCls:'task-folder', 
                expanded: true,
                children:
                [
                    {
                        task:'Housewares', 
                        user:'Will', 
                        iconCls:'task-folder',
                        expanded: true,
                        children:[
                            { 
                                task:'Kitchen supplies', 
                                user:'Alpha', 
                                leaf:true, 
                                iconCls:'task' 
                            },
                            { 
                                task:'Groceries', 
                                user:'Bravo', 
                                leaf:true, 
                                iconCls:'task' 
                            }
                        ]
                    }
                ]
            }
        ]
    };

var rootNode = store.setRootNode(data);
Run Code Online (Sandbox Code Playgroud)


dan*_*son 5

你也可以这样做:

var store = Ext.create('Ext.data.TreeStore', {
    model: tree_model,
    // normally the data object would go here
    proxy: {
        data : data, // instead it goes here
        type: 'memory',
        reader: {
            type: 'json',
        }
    },
});
Run Code Online (Sandbox Code Playgroud)