我尝试在Sencha Architect中使用XML TreeStore,但无法从给定的XML加载任何数据。虽然我可以将该商店作为对象访问,但其getCount()
会返回' undefined'和getNodeById('foobar')
之类的方法导致无法读取属性' foobar'未定义的'这让我觉得映射没有发生(存储已初始化但无法解析数据/实例化模型)。
具有相同模型但在同一基本设置中通过平面商店访问的相同XML工作正常(例如getCount()
按预期返回2)。具有JSON版本数据的树存储库也可以正常工作。
Sencha Architect的问题商店的课程是:
Ext.define('MyApp.store.DocumentStore', {
extend: 'Ext.data.TreeStore',
requires: [
'MyApp.model.Document'
],
constructor: function(cfg) {
var me = this;
cfg = cfg || {};
me.callParent([Ext.apply({
autoLoad: true,
storeId: 'TreeDocumentStore',
model: 'MyApp.model.Document',
proxy: {
type: 'ajax',
url: 'DocumentTemplates.xml',
reader: {
type: 'xml',
root: 'Templates',
record: 'Template'
}
}
}, cfg)]);
}
});
源XML文件存储引用的是:
<?xml version="1.0" encoding="UTF-8"?>
<Templates>
<Template>
<Id>A253338C-CDFA-4182-9E1C-652EAAB713F8</Id>
<Title>Template 1</Title>
<Children />
</Template>
<Template>
<Id>26D5B83C-7E9E-49E2-B174-F9A6C7BA07A8</Id>
<Title>Template 2</Title>
<Children />
</Template>
</Templates>
如果我误解了&#39; root&#39;属性我尝试了全局根的不同节点名称和假定的子节点根设置&#39; root&#39;读者对所有可能值的属性,但没有运气。
我也尝试从节点中删除空,效果相同。
这不是关于在视图中显示商店中的商品,我只是试图访问控制器中的数据。
P.S。带有XML文件的虚拟项目,树存储和控制器访问onLaunch
中的存储位置:http://sdrv.ms/RAsj26
答案 0 :(得分:0)
花了一些时间处理这个问题我自己对类似问题的回答可能是相关的:https://stackoverflow.com/a/12886943/454266
看起来在当前版本的框架中没有正确支持XML源的树结构,无论是TreeStore还是关联机制。