我想在Store中加载嵌套的JSON,但数据未正确映射。单个regModel没问题,但我无法使关联起作用。
// JSON in test.json
{"message" : {
"returnCodes": [
{
"value": "0",
"code": "200",
"description": "OK"
},
{
"value": "0",
"code": "200",
"description": "OK"
}
]
}}
// Model with associations
Ext.regModel("ReturnCode", {
fields : [{
name : "value",
type : "string"
}, {
name : "code",
type : "string"
}, {
name : "description",
type : "string"
}],
belongsTo: "Message"
});
Ext.regModel("Message", {
hasMany: {
model : "ReturnCode",
name : "returnCodes"
}
});
// Store
var jobStore = new Ext.data.Store({
model : 'Message',
autoLoad: true,
proxy : {
type : 'ajax',
url: 'test.json',
reader : {
type : 'json',
root : 'message.returnCodes'
}
}});
// List
var list = Ext.extend( Ext.List, {
fullscreen : true,
store : jobStore,
grouped : false,
itemTpl : '<div>{code}</div>' // no output
});
当我查看商店时,每个数据都存储在商店对象的原始部分中,但数据部分中没有任何内容。在两个returnCode对象的列表中,创建了一个listitem,但它们没有填充数据,因为映射没有成功 - &gt; itemTpl没有数据。
答案 0 :(得分:0)
首先尝试声明消息模型,然后在消息模型中的associationKey:'returnCodes'
中添加hasMany{}
。同时将阅读器的根目录更改为message
。