簡體   English   中英

Extjs形式:加載數據

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM