如何创建具有多个belongsTo相同模型类型的ExtJS 4模型?

时间:2011-07-20 02:24:38

标签: extjs data-modeling extjs4

我对ExtJS很新,并且正在努力解决它。

我有一个“人”模型,它与同一个模型(母亲和父亲)有几个关系。

我不清楚如何访问这些关系。这就是我所拥有的:

Ext.define('IwiDb.model.Person', {
extend: 'Ext.data.Model',
fields: [ 
    'ID',
    'Title',
    'FirstName',
    'MiddleNames',
    'Surname',
    //.. snip
    'MotherID',
    'FatherID',
],
associations: [{
    type: 'belongsTo',
    model: 'IwiDb.model.Person',
    primaryKey: 'ID',
    foreignKey: 'MotherID',
    autoLoad: true,
    name: 'Mother',
    getterName: 'getMother',
},{
    type: 'belongsTo',
    model: 'IwiDb.model.Person',
    primaryKey: 'ID',
    foreignKey: 'FatherID',
    autoLoad: true,
    name: 'Father',
    getterName: 'getFather',
}],

idProperty: 'ID',
proxy: {
    type: 'rest',
    url: 'api/v1.extjs/Person',
    format: 'json',
    reader: {
        type: 'json',
        root: 'items',
        totalProperty: 'totalSize',
    },
    writer: {
        type: 'json',
    },
    simpleSortMode: true,
}
});

编辑:我我已经接近了,我已经将代码更新为我现在所拥有的。至少现在我可以做person.getMother()并获得一个函数。但我仍然无法获得数据。谁知道怎么做?

1 个答案:

答案 0 :(得分:2)

好吧,我最终想到了。上面的(编辑过的)代码是正确的定义,然后如果我想加载母亲,我会做这样的事情:

var mother;
person.getMother(function(result, operation) { mother = result });