我有以下数据:
var data = [
{
id: 1,
name: 'Ed Spencer',
phoneNumber: '555 1234',
children: [{
id: 11,
name: 'Baz'
}]
},
{
id: 2,
name: 'Abe Elias',
phoneNumber: '666 1234',
children: [{
id: 21,
name: 'Foo'
},{
id: 21,
name: 'Bar'
}]
}
];
有没有办法将它加载到某些模型和商店中,像这样?
Ext.define('Child', {
extend: 'Ext.data.Model',
fields: [
{name: 'id', type: 'int'},
{name: 'user_id', type: 'int'},
{name: 'name', type: 'string'}
],
belongsTo: 'User'
});
Ext.define('User', {
extend: 'Ext.data.Model',
fields: [
{name: 'id', type: 'int'},
{name: 'name', type: 'string'},
{name: 'phone', type: 'string', mapping: 'phoneNumber'}
],
hasMany: {model: 'Child', name: 'children'}
});
var store = Ext.create('Ext.data.Store', {
autoLoad: true,
model: 'User',
data : data
});
到目前为止,我只找到了一种方法,即遍历商店:
store.each(function(r){
r.childrens().loadData(r.data.children);
});
但这似乎不太好。
我只想加载一次数据。我真的不想在每个孩子中指定外键,因为我的数据已经结构化。
有没有人做过类似的事情?有没有更好的方法来解决这个问题?