Javascript 如何读取嵌套在ExtJS 5.0.0中的引用对象
下面的代码可以很好地处理ReadOrder.json(下面)中的数据,但是当关联对象嵌套在ReadOrderNested.json(下面,在“集合”中)中的另一个对象中时,如何读取关联对象 问题是更具体地说,我们可以将映射属性或代理的读卡器配置与rootProperty一起使用吗(尝试这种方法时运气不佳) 森查小提琴: Extjs版本:5.0.0Javascript 如何读取嵌套在ExtJS 5.0.0中的引用对象,javascript,extjs,extjs4,extjs4.2,extjs5,Javascript,Extjs,Extjs4,Extjs4.2,Extjs5,下面的代码可以很好地处理ReadOrder.json(下面)中的数据,但是当关联对象嵌套在ReadOrderNested.json(下面,在“集合”中)中的另一个对象中时,如何读取关联对象 问题是更具体地说,我们可以将映射属性或代理的读卡器配置与rootProperty一起使用吗(尝试这种方法时运气不佳) 森查小提琴: Extjs版本:5.0.0 //Base Model Ext.define('MyApp.model.Base', { extend: 'Ext.data.Mod
//Base Model
Ext.define('MyApp.model.Base', {
extend: 'Ext.data.Model',
fields: [{
name: 'id',
type: 'int'
}],
schema: {
namespace: 'MyApp.model'
}
});
//Order Model
Ext.define('MyApp.model.Order', {
extend: 'MyApp.model.Base',
fields: [{
name: 'customer',
type: 'string'
}, {
name: 'paymentStatus',
type: 'string'
}]
});
//PaymentDetail Model
Ext.define('MyApp.model.PaymentDetail', {
extend: 'MyApp.model.Base',
fields: [{
name: 'orderId',
reference: 'Order'
}, {
name: 'cardNumber',
type: 'string'
}, {
name: 'status',
type: 'string'
}]
});
Ext.define('MyApp.store.OrderStore', {
extend: 'Ext.data.Store',
model: 'MyApp.model.Order',
proxy: {
type: "rest",
url: 'Order.json',
appendId: false,
api: {
create: undefined,
read: 'ReadOrder.json',
update: 'UpdateOrder.json',
destroy: undefined
},
reader: {
type: 'json',
rootProperty: 'order'
},
writer: {
writeAllFields: true,
allDataOptions: {
persist: true,
associated: true
}
}
},
});
Ext.application({
name: 'MyApp',
launch: function() {
var orderStore = Ext.create('MyApp.store.OrderStore');
orderStore.load({
callback: function(records) {
var order = this.first();
debugger;
var paymentDetailList = order.paymentDetails();
paymentDetailList.each(function(paymentDetail) {
//Print initial values of payment detail
console.log(paymentDetail.get('cardNumber'));
console.log(paymentDetail.get('status'));
})
}
});
}
});
数据:ReadOrder.json
{ "success": true,
"order": [{
"id": 1,
"customer": "Philip J. Fry",
"paymentStatus": "AWAIT_AUTH",
"paymentDetails": [{
orderId : 1,
"cardNumber": "4111111111",
"status": 'CREATED'
}, {
orderId : 1,
"cardNumber": "4222222222",
"status": "CREATED"
}]
}]
}
当关联对象嵌套在“collection”ReadOrderNested.json中时,如何读取此数据:
{ "success": true,
"order": [{
"id": 1,
"customer": "Philip J. Fry",
"paymentStatus": "AWAIT_AUTH",
"paymentDetails": {
"collection" : [{
orderId : 1,
"cardNumber": "4111111111",
"status": 'CREATED'
}, {
orderId : 1,
"cardNumber": "4222222222",
"status": "CREATED"
}]}
}]
}
我使用的是ExtJS4,不知道是否有区别。我使用的模型字段如下:
fields: [{
name: 'id',
type: 'int'
},{
name: 'paymentDetails'
}],
当将一个模型加载到表单中时
form.load(record);
Ext.getStore("paymentDetailsStore").removeAll();
Ext.getStore("paymentDetailsStore").loadRawData(record.get("paymentDetails"));
将paymentDetailsStore
绑定到与表单位于同一窗口中的网格