Сохранить данные вложенной формы обратно на сервер в ExtJS
У меня есть модель, которая содержит связь с другой моделью. Я могу отобразить вложенные данные в форме с помощью атрибута сопоставления на поле. Пример:
Ext.define('Example.model.Request', {
extend: 'Ext.data.Model',
fields: [
{
name: 'id',
type: Ext.data.Types.NUMBER,
useNull: false
}
{
name: 'plan_surveyor',
mapping: 'plan.surveyor',
type: Ext.data.Types.STRING
}
],
associations: [
{type: 'hasOne', associationKey: 'plan', getterName:'getPlan', model: 'Specs.model.Plan'}
],
proxy: {
type: 'direct',
api: {
read: requestController.load,
update: requestController.update,
},
reader: {
type: 'json',
root: 'records'
},
writer: {
type: 'json',
writeAllFields: true,
nameProperty: 'mapping'
}
}
});
Используя этот метод, я могу отобразить значение plan.surveyor в форме с помощью ссылки plan_surveyor. Я вызываю Form.loadRecord (модель), чтобы получить данные из модели в форму.
Однако теперь, когда ям, пытаясь отправить данные обратно на сервер, я получаю сообщение об ошибке:
Error performing action. Please report the following: "Unrecognized field "plan.surveyor"
Я пытаюсь сохранить данные на сервере, сначала вызвав Form.updateRecord (model), затем model.save (). Есть ли способ, чтобы Писатель понял это?plan.surveyor» это не имя свойства, а правильная обработка вложенности?
Правильно ли я делаю это для начала, или мне просто нужно обработать настройку данных формы и загрузить обратно в модель более ручным способом? Кажется, что вложенные данные не так хорошо поддерживаются в целом - какие-либо рекомендации?