我有一个模型,其中包含与另一个模型的关联。我可以使用字段上的映射属性将嵌套数据显示到表单中。例子:
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(model) 将数据从模型中提取到表单中。
但是,现在我正在尝试将数据发送回服务器,我收到错误消息:
Error performing action. Please report the following: "Unrecognized field "plan.surveyor"
我试图通过首先调用 Form.updateRecord(model),然后调用 model.save() 来保存到服务器。有没有办法让 Writer 明白 'plan.surveyor' 不是属性名称,而是正确处理嵌套?
我这样做是正确的开始方式,还是应该只是处理表单数据的设置并以更手动的方式加载回模型?嵌套数据似乎并没有得到很好的支持——有什么建议吗?