我想将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'
},
答案 0 :(得分:3)
要使操作[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
}
}
答案 1 :(得分:1)
目前你不能在表单字段定义中使用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属性名称有点奇怪,因此映射可能有点困难,所以最好使用转换函数。
答案 2 :(得分:0)
或者,您可以使用您可能已在其他位置加载的对象中的数据设置字段的值。
理想情况下,您的模型对象和表单字段的名称匹配,然后您可以在传入获取的模型记录的表单上执行loadRecord。但是,如果情况并非如此,并且您从另一个模型或只是Ajax请求中读取了大量数据,则仍可以通过设置字段的“value”属性来设置包含此数据的表单字段。如果需要,您可以深入了解Model对象的data属性,如下所示:“myModel.data.subObject.someProperty”
答案 3 :(得分:0)
如果它是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数据绑定...是否可能?