87,910
社区成员
发帖
与我相关
我的任务
分享
var myData = {
total:111,
user:{
name:'aaa',
age:19,
orders:[
{name:'a',num:'100'},
{name:'ab',num:'10'}
]
}
}
Ext.define('User',{
extend:'Ext.data.Model',
fields:[
{name:'name',type:'auto'},
{name:'age',type:'int'}
],
hasMany : {model: 'Order',name:'orders'}
});
Ext.define('Order',{
extend:'Ext.data.Model',
fields:[
{name:'name',type:'auto'},
{name:'num',type:'int'}
],
belongsTo:{ model:'User',name:'user'}
});
var mProxy = Ext.create('Ext.data.proxy.Memory',{
model:'User',
data:myData,
reader:{
type:'json',
root:'user'
}
});
mProxy.read(new Ext.data.Operation(),function(o){
//o => Ext.data.Operation 1
var users = o.getRecords();
Ext.Array.each(users,function(user){
// user => User 2
var orders = user.raw.orders;
Ext.Array.each(orders,function(order){
//order => Order
alert(order.num);
})
});
});
mProxy.read(new Ext.data.Operation(),function(o){
//o => Ext.data.Operation 1
var users = o.getRecords();
Ext.Array.each(users,function(user){
// user => User 2
//var orders = user.raw.orders;
var orders = user.orders();
orders.each(function(order){
alert(order.get('name'));
});
// Ext.Array.each(orders,function(order){
// //order => Order
// alert(order.num);
// })
});
});
已经解决了,直接用name()就能拿出来,注意是在hasmany里设置的name(),不是Model名()
拿出来是个Ext.data.Store
直接用Store的方法遍历就行了