首先,我是ExtJS的新手。我希望您的帮助,让我知道最好的方式来获得一个树形菜单,其中有n个递归项目。在示例中:
文件夹
..FOLDER
....ITEM
....FOLDER
......ITEM
......ITEM
....FOLDER
..。
我正在遵循Sencha提出的最佳实践。我可以用一个级别做一个树形菜单,但当尝试做n个级别的菜单时,它失败了(实际上,这个应用程序可以工作,但显示第一个级别的无限个节点)。显然,问题在于我的菜单项的模型定义,请参见:
Ext.define('Dashboard.model.MenuItem',{
extend: 'Dashboard.model.AbstractMenuElement',
fields:
[
{name: 'content', type: 'string'},
{name: 'skeletonFlag', type: 'string'},
{name: 'fatherId', type: 'int'}
],
associations:
[
{type: 'hasMany', model: 'Dashboard.model.MenuItem', name: 'children', mapping: 'items'}
]
});
因此,这个模型递归地创建无限个节点。但是..。你知道我应该如何建模我的菜单项才能实现递归菜单吗?
谢谢!
发布于 2013-05-30 01:11:41
要在Ext中显示树状结构,我认为最好的选择是结合使用Ext.model.TreeModel、Ext.model.TreeStore和Ext.tree.Panel。
这里有一个简单的例子来匹配你在问题中提到的结构:
Ext.create('Ext.tree.Panel', {
store: Ext.create('Ext.data.TreeStore', {
root: {
text: 'Root Folder',
expanded: true,
children: [
{text: 'Folder 1', children: [
{text: 'Item 1', leaf: true}
]},
{text: 'Folder 2', expanded: true, children: [
{text: 'Item 2', leaf: true},
{text: 'Item 3', leaf: true}
]},
{text: 'Folder 3', children: []}
]
}
}),
renderTo: Ext.getBody()
});
您可以在Plunker上查看this example。
https://stackoverflow.com/questions/12540001
复制相似问题