別のモデルへの関連付けを含むモデルがあります。フィールドのマッピング属性を使用して、ネストされたデータをフォームに表示できます。例:
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() を呼び出して、サーバーに保存しようとしています。「plan.surveyor」がプロパティ名ではなく、ネストを適切に処理することをライターに理解させる方法はありますか?
私はこれを最初から正しい方法で行っていますか、それともフォームデータの設定を処理し、より手動でモデルにロードし直す必要がありますか? ネストされたデータは、一般的に十分にサポートされていないようです - 何か推奨事項はありますか?