Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/extjs/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Extjs Sencha Architect XML树存储无法加载/映射XML_Extjs_Sencha Architect - Fatal编程技术网

Extjs Sencha Architect XML树存储无法加载/映射XML

Extjs Sencha Architect XML树存储无法加载/映射XML,extjs,sencha-architect,Extjs,Sencha Architect,我试图在Sencha Architect中使用XML树存储,但它无法从给定的XML加载任何数据。虽然我可以作为对象访问该存储,但它的getCount()返回'undefined',像getNodeById('foobar')这样的方法会导致'cannotread property'foobar'of undefined',这使我认为映射不会发生(存储已初始化,但无法解析数据/实例化模型) 具有相同模型但通过相同基本设置中的平面存储访问的相同XML可以正常工作(例如,getCount()按预期返回

我试图在Sencha Architect中使用XML树存储,但它无法从给定的XML加载任何数据。虽然我可以作为对象访问该存储,但它的
getCount()
返回'undefined',像
getNodeById('foobar')
这样的方法会导致'cannotread property'foobar'of undefined',这使我认为映射不会发生(存储已初始化,但无法解析数据/实例化模型)

具有相同模型但通过相同基本设置中的平面存储访问的相同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>

A253338C-CDFA-4182-9E1C-652EAAB713F8
模板1
26D5B83C-7E9E-49E2-B174-F9A6C7BA07A8
模板2
如果我误解了“root”属性的用途,我尝试了全局根和假定的子节点根的不同节点名称,将读取器的“root”属性设置为所有可能的值,但没有成功

我也尝试从节点中删除空节点,效果相同

这并不是在视图中显示存储区中的项目,我只是尝试访问控制器中的数据


p.S.虚拟项目,带有XML文件、树存储和控制器,可访问
onLaunch中的存储:

我自己对类似问题的回答可能与此相关:

当前版本的框架似乎不支持XML源的树结构,无论是树存储还是关联机制。

可能有用-我在根目录下添加了“2”,并调用了store.getTotalCount()-与返回“undefined”的getCount()不同,此方法不存在。所以存储根本没有初始化?好的,getCount()不起作用,因为它不适用于树存储。