2011-12-13 17 views
1

給這樣ExtJS的雙向複雜的數據綁定表

{名稱:{姓: '名',名字: '姓'}}一個JSON數據

我可以模擬使用模型映射

fields: [ 
    {Name: 'firstname', mapping: 'name.firstname'}, 
    {Name: 'lastname', mapping: 'name.lastname'} 
] 

它允許我們將數據加載到表單如

名字:[名字]

姓:[姓氏]

然而,當我們提交表單分機序列化內容

{ "firstname": "New first name", "lastname": "New last name"} 
// instead of 
{ "name": { "firstname": "...", "lastname": "..."} } 

反正是有,我可以告訴將對象序列化回嵌套形式,問候。

P.S:我Edit.js來自外部MVC應用指南採取http://docs.sencha.com/extjs/4.2.2/#!/guide/application_architecture

回答

3

您需要在您的JSON作家配置兩個屬性。您需要設置nameProperty: 'mapping'expandData: true。例如,如果你在你的模型配置筆者在代理,它應該是這樣的:

proxy: { 
    // other proxy config... 
    writer: { 
     type: 'json', 
     nameProperty: 'mapping', 
     expandData: true 
    } 
} 

nameProperty決定了每個字段的屬性名來自:要麼name屬性或mapping財產。因此,使用你的榜樣,這將產生一個像這樣的對象:

{ 'name.firstname': 'New first name', 'name.lastname': 'New last name' } 

這是相當你想要什麼呢,而這正是expandData進來這告訴它擴大在例如那些點分隔的性質。上面,並創建嵌套的對象。

{ 'name': { 'firstname': 'New first name', 'lastname': 'New last name' } } 

文檔: