Как создать модель ExtJS 4 с несколькими принадлежащими к одному типу модели? - PullRequest
3 голосов
/ 20 июля 2011

Я довольно плохо знаком с 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 Ответ

2 голосов
/ 21 июля 2011

Ну, я понял это в конце.Вышеуказанный (отредактированный) код был правильным определением, и если я, например, хочу загрузить мать, я делаю что-то вроде этого:

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