EXTJS hasone协会(Extjs hasone association)

2019-09-19 18:37发布

我有Person模型,它包含了ID,名字,姓氏等,并merital_id领域。 我也有Merital模型只包含2场:编号和标题。 服务器响应JSON,如:

{
    success: true,
    items: [
        {
            "id":"17",
            "last_name":"Smith",
            "first_name":"John",
            ...
            "marital_id":1,
            "marital": {
                "id":1,
                "title":"Female"
            }
        },
        ...
    ]
}

所以,我怎么能连接我的机型联想? 我仍然可以在我的column.renderer使用record.raw.merital.title,但我不能在模板中使用这样的领域,如{姓氏} {} FIRST_NAME({} merital.title)。 做什么王协会的我需要使用,我tryed属于关联,但是当我尝试使用record.getMarital()我得到一个错误“在记载中没有这样的方法”。

我使用ExtJS的4

Answer 1:

您应该使用ExtJS的模型,和协会,特别是HasOne关联。

文档:

http://docs.sencha.com/ext-js/4-1/#!/api/Ext.data.association.HasOne

例:

http://jsfiddle.net/el_chief/yrTVn/2/

Ext.define('Person', {
    extend: 'Ext.data.Model',
    fields: [
        'id',
        'first_name',
        'last_name'
        ],

    hasOne: [
        {
        name: 'marital',
        model: 'Marital',
        associationKey: 'marital' // <- this is the same as what is in the JSON response
        }
    ],

    proxy: {
        type: 'ajax',
        url: 'whatever',
        reader: {
            type: 'json',
            root: 'items' // <- same as in the JSON response
        }
    }
});


文章来源: Extjs hasone association