我有几个型号:
ModelA:
fields: [id, name],
hasMany: ModelB
ModelB:
fields: [id, name, attr],
hasMany: ModelC
ModelC:
fields: [id, name, attr]
我使用数据存储来存储来自rest代理的这些嵌套数据:
ModelAStore:
model: 'ModelA'
proxy:{}
现在我想在树状图中使用它们:
结构将如下:
ModelA
|-ModelBInstance
|-ModelCInstance
|-ModelCInstance
|-ModelBInstance
|-ModelBInstance
当我点击ModelBInstance时,其他部分的数据网格将会改变。
我该怎么做?
答案 0 :(得分:2)
基本上你要么
typeProperty: 'mtype'
配置代理阅读器并获取其余API,以便在该字段中添加'A'
,'B'
或'C'
; OR
childType
属性定义您的模型:A
(商店模型)将childType: 'B'
,B
将childType: 'C'
全部在最新的Tree Panel手册中 - 滚动到“异构节点类型”。
答案 1 :(得分:0)
为什么使用3种不同型号?对我来说更好的解决方案是只使用一个模型,可能还有一个额外的字段来保存您的内容类型:
Model:
fields: [id, name, attr, type]
根据文档http://docs.sencha.com/extjs/4.2.1/#!/api/Ext.tree.Panel,您使用的商店必须实现一个根域('孩子','数据',...),这将指示当前节点有子节点。 所以你的模型看起来像这样:
Model:
fields: [id, name, attr, type, children]
现在,如果您决定使用此解决方案,您可能需要重构生成数据的方式......