私は次のデータを持っています:
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
});
これまでのところ、ストアをループすることでこれを行う方法は1つしか見つかりませんでした。
store.each(function(r){
r.childrens().loadData(r.data.children);
});
しかし、これは素晴らしいとは思えません。
データを1回だけロードしたい。私のデータはすでに構造化されているので、各子に外部キーを指定する必要はありません。
誰かが似たようなことをしましたか?これにアプローチするためのより良い方法はありますか?