在提问之前,我发现有一个类似的问题:Sencha Touch 2, nested XML parsing nodeValue 我使用模型/代理从xml文件加载数据,几乎成功,但有一个问题,我无法读取xml文件中的记录节点的值。 我的xml文件喜欢这个: myRecord.js
コード:
<records>
<record attribute='a' id='1'>A</record>
<record attribute='b' id='2'>B</record>
<record attribute='c' id='3'>C</record>
</record>
我的模特喜欢这个:
コード:
Ext.define('RecordModel',{
extend: 'Ext.data.Model',
config: {
fields: [
{name: 'recoreAttr', mapping: '@attribute', type:'string'}
{name: 'recordId', mapping: '@id', type:'string'}
{name: 'recordName', mapping: 'record', type:'string'}
],
proxy: {
type:'ajax',
url: 'myRecord.js'
reader: {
type:'xml';
rootProperty:'records'
record:'record', // only occurs for the node configed here
}
}
}
})
然后我创建一个'RecordModel'存储并调用load()方法,我发现属性(我的xml文件中的a,b,c)和id(我的xml文件中的1,2,3)是正确的读。但是没有读取之间的值(我的xml文件中的A,B,C)。我认为必须是我的映射格式是错误的,但我不知道正确的映射格式是什么样的。 这个问题只发生在代理中被称为'record'的节点上,如果thre是记录节点中的嵌套节点,则可以成功读取该值。
<records>
<record attribute='a' id='1'>A</record>
<record attribute='b' id='2'>B</record>
<record attribute='c' id='3'>C</record>
<record attribute='c' id='3'>
<nested>D</nested>
</record>
</record>
嵌套节点值'D'可以读取。