Javascript 如何读取嵌套在ExtJS 5.0.0中的引用对象

Javascript 如何读取嵌套在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

下面的代码可以很好地处理ReadOrder.json(下面)中的数据,但是当关联对象嵌套在ReadOrderNested.json(下面,在“集合”中)中的另一个对象中时,如何读取关联对象

问题是更具体地说,我们可以将映射属性或代理的读卡器配置与rootProperty一起使用吗(尝试这种方法时运气不佳)

森查小提琴:

Extjs版本:5.0.0

    //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
绑定到与表单位于同一窗口中的网格