javascript - Extjs 4 - 为树面板创建模型

标签 javascript extjs tree extjs4 treepanel

我想实现一个树形面板,其中包含从服务器动态加载的内容(作为 Json)和自定义数据模型。但我不知道如何为该树定义模型和数据存储。你能提供一些例子吗?如果可能的话,我想遵守 sencha mvc 的建议(模型和数据存储定义为单独的类)。 我知道如何在 extjs 3 中执行此操作,但我在版本 4 中迷路了。

最好的问候 RG

最佳答案

我最近尝试了一种新的 MVC 方法,并设法让它与树面板一起工作。实际上没什么特别的:

查看:

Ext.define('RoleBuilder.view.RoleList', {
    extend: 'Ext.tree.Panel',
    alias: 'widget.roles',
    title: 'Roles',
    store: 'Roles'    
});

商店:

Ext.define('RoleBuilder.store.Roles', {
    extend: 'Ext.data.TreeStore',
    model: 'RoleBuilder.model.Role',
    requires: 'RoleBuilder.model.Role',
    root: {
        text: 'Roles',
        expanded: true        
    },
    proxy: {
        type: 'ajax',
        url: loadRolesUrl,
        actionMethods: 'POST',
        reader: {
            type: 'json'
        }
    }
});

型号:

Ext.define('RoleBuilder.model.Role', {
    extend: 'Ext.data.Model',
    fields: [
        { name: 'id', type: 'int', mapping: 'Id' },
        { name: 'text', type: 'string', mapping: 'Text' },
        { name: 'leaf', type: 'boolean', mapping: 'Leaf' },
        { name: 'loaded', type: 'boolean', mapping: 'Loaded', defaultValue: false },
        { name: 'Properties'},
        { name: 'expanded', defaultValue: true }
    ]
});

Controller :

Ext.define('RoleBuilder.controller.RoleList', {
    extend: 'Ext.app.Controller',
    init: function () {
        this.control({
            'roles': {
                itemcontextmenu: this.onItemContextMenuClick,
                itemclick: this.onItemClick
            }
        });

        this.application.on({
            'role-saved': Ext.Function.bind(this.onRoleSaved, this)
        });
    },
..... too long, but you got the idea.

希望对您有所帮助。

关于javascript - Extjs 4 - 为树面板创建模型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8205009/

相关文章:

javascript - 如何使用 Bootstrap Tab Collapse 插件在标签内获取 h4 标签?

java - 如何使用 Ext.Ajax.request 将参数传递给 servlet?

javascript - 如何处理 ExtJs 上的错误

java - 从表构造树

R:rpart 树使用两个解释变量生长,但在删除不太重要的变量后不再生长

algorithm - trie 和 radix trie 数据结构有什么区别?

javascript - 使用Promises更好地处理错误?

javascript - d3.js - 可折叠力布局 - 为叶节点设置可变颜色

javascript - Knockoutjs 立即验证

css - 如何根据值的变化改变 extjs 网格单个单元格的背景颜色?