Допустим, у меня есть экземпляр ModelA, который может создавать экземпляры hasMany ModelB.Учитывая идентификатор для записи ModelB, которая уже существует на сервере, как мне связать модель A с моделью B?(Документы API показывают, как это сделать, одновременно создавая новый экземпляр модели B и запись базы данных.)
В качестве примера, скажем, у меня есть приложение, которое можно использовать для планирования встреч с объектами Person и Meeting.Сервер может вернуть JSON, например, для собрания:
Совещание:
{
id: '10',
purpose: 'Code review',
time: <timestamp>,
attendees: [ 501, 532 ]
}
Персона:
{ id: 501, name: 'Kermit', email: 'kermit@thefrog.com' }
Модели могут быть определены следующим образом:
Ext.define('Person', {
extend: 'Ext.data.Model',
fields: ['id', 'name', 'email'],
proxy: {
type: 'rest',
url : 'data/people',
reader: { type: 'json' }
}
});
Ext.define('Meeting', {
extend: 'Ext.data.Model',
fields: ['id', 'purpose', 'time'],
hasMany: { model: 'Person', name: 'attendees' }
proxy: {
type: 'rest',
url : 'data/meetings',
reader: { type: 'json' }
}
});
Я понимаю, что однажды загруженная встреча.Я могу вызвать meeting.attendees () для доступа к каждой модели Person.Но, учитывая новый идентификатор участника (например, 599), как мне добавить еще одного человека на собрание?Является ли единственной возможностью загрузить экземпляр Person для идентификатора 599, а затем добавить этот экземпляр к «посетителям», например так?
Meeting.load(10, {
success: function(meeting) {
Person.load(599, {
success: function(person) {
meeting.attendees().add(person);
meeting.save();
}
});
}
})
Когда выполняется meeting.save (), будет ли POST правильно включать толькоИдентификатор человека, как это?
{
id: '10',
purpose: 'Code review',
time: <timestamp>,
attendees: [ 501, 532, 599 ] <-- '599' is new attendee
}
Спасибо!