[英]Extjs form : load data
我想將json數據加載到表單中。
我的json:
{
"success": "true",
"data": {
"operation[id]": "1199",
"operation[startdate]": "2011-10-04 08:00:00",
"operation[starthour]": "08:00",
"operation[enddate]": "2011-10-04 18:00:00",
"operation[endhour]": "18:00",
"operation[year]": "2011",
"operation[abscomment]": "",
"operation[person_id]": "13",
"operation[Mission]": {
"id": "1",
"operation_id": "1199",
"subject": null
}
}
}
它適用於類似操作[id]的鍵,但不適用於操作[Mission] [id]。
在我的形式:
{
xtype: 'textfield',
fieldLabel: 'Subject',
name:'operation[Mission][subject]',
anchor: '50%',
margin: '15 10 5 10',
allowBlank: false,
blankText:'required'
},
要使操作[Mission] [id]有效,您必須更改JSON結構並刪除一些嵌套。 該名稱只是一個字符串標識符,您不能用它來表示如何從嵌套的JSON結構中獲取數據。
{
"success": "true",
"data": {
"operation[id]": "1199",
"operation[startdate]": "2011-10-04 08:00:00",
"operation[starthour]": "08:00",
"operation[enddate]": "2011-10-04 18:00:00",
"operation[endhour]": "18:00",
"operation[year]": "2011",
"operation[abscomment]": "",
"operation[person_id]": "13",
"operation[Mission][id]":"1",
"operation[Mission][operation_id]":"1199",
"operation[Mission][subject]":null
}
}
目前,您不能在表單字段定義中使用name ='property.subProperty':(。
所以為了使這個工作,我恢復邏輯 - 添加(冗余)字段定義到模型:
Ext.define('operation', {
extend: 'Ext.data.Model',
fields: [
'id',
'startDate',
'endDate',
...
{name: 'missionId', mapping: 'mission.id'}
]
});
然后你可以創建一個表單字段,如:
{
xtype: 'displayfield',
name: 'missionId',
...
}
它將填充在form.loadRecord()上。
在您的情況下,JSON屬性名稱有點奇怪,因此映射可能有點困難,因此最好使用轉換函數。
或者,您可以使用您可能已在其他位置加載的對象中的數據設置字段的值。
理想情況下,您的Model對象和Form字段的名稱匹配,然后您可以在傳入獲取的Model記錄的表單上執行loadRecord。 但是,如果情況並非如此,並且您從另一個模型或只是Ajax請求中讀取了大量數據,則仍可以通過設置字段的“value”屬性來設置包含此數據的表單字段。 如果需要,您可以深入了解Model對象的data屬性,如下所示:“myModel.data.subObject.someProperty”
如果它是1:1嵌套關系,一切正常,但如果你有1:N結構:
"operation[id]": "1199",
"operation[startdate]": "2011-10-04 08:00:00",
"operation[starthour]": "08:00",
"operation[enddate]": "2011-10-04 18:00:00",
"operation[endhour]": "18:00",
"operation[year]": "2011",
"operation[abscomment]": "",
"operation[person_id]": "13",
"operation[Mission][id]":"1",
"operation[Mission][operation_id]":"1199",
"operation[Mission][subject]":null,
"operation[Mission][id]":"2",
"operation[Mission][operation_id]":"1123",
"operation[Mission][subject]":"Second nested subject"
你怎么能挖掘數據。 比方說,你有一個帶有一些文本字段和一個網格(訂單明細)的表單(訂單),這是真實應用程序中眾所周知的情況。 您有一個嵌套模型(Orders-> Order Details),並且您希望將網格與OrderDetails數據綁定...是否可能?
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.