我試圖在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