我试图在Sencha Architect中使用XML TreeStore,它无法加载给定XML中的任何数据。尽管我可以将该商店作为对象访问,但其getCount()
返回'undefined',而像getNodeById('foobar')
这样的方法会导致'无法读取属性'的未定义'foobar',这使我认为映射不会发生(存储被初始化但未能解析数据/实例化模型)。Sencha Architect XML TreeStore无法加载/映射XML
具有相同型号但在相同基本设置中通过平面存储访问的相同XML可以正常工作(例如getCount()
按预期返回2)。具有JSON版本数据的树存储再次正常工作。
通过煎茶架构师我有问题的存储类是:
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>
在情况下,我误解了“根”属性的目的我为全局根尝试了不同的节点名称,假设子节点的根目录将读者的“root”属性设置为所有可能的值,但没有运气。
我试图从节点中删除空白以及相同的效果。
这不是关于在视图中显示商店中的项目,但我只是试图访问控制器中的数据。
P.S.与存储在onLaunch
一个XML文件,树存储和访问控制器虚拟项目是在这里:http://sdrv.ms/RAsj26
可能很有用 - 我在 root下调用''并调用store.getTotalCount() - 不像getCount()返回'undefined'这个方法不存在。所以商店根本没有初始化? –
Yuriy
好吧,getCount()不起作用,因为它不适用于树木商店。 – Yuriy