Sencha Architect XML TreeStore无法加载/映射XML

时间:2012-10-11 16:23:30

标签: extjs sencha-architect

我尝试在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

1 个答案:

答案 0 :(得分:0)

花了一些时间处理这个问题我自己对类似问题的回答可能是相关的:https://stackoverflow.com/a/12886943/454266

看起来在当前版本的框架中没有正确支持XML源的树结构,无论是TreeStore还是关联机制。