如何在Extjs 4中用嵌套的JSON填充Form
How to populate Form with nested JSON in Extjs 4
我有一个类似的JSON
{
"success": true,
"users": [{
"name":"Boom",
"emails": [{
"first": "syedwaseem@yahoo.com",
"second": "ed@sencha.com",
"countries":[{
"label":"pakistan",
"continent":"asia"
}]
}]
}]
}
我已经为它创建了我的模型,就像这个
Ext.define('WR.model.WorkRecord', {
extend: 'Ext.data.Model',
fields: ['name'],
hasMany: {model: 'WR.model.Email', name: 'emails'}
});
Ext.define('WR.model.Email', {
extend: 'Ext.data.Model',
fields: ['first', 'second'],
belongsTo: {model : 'WR.model.WorkRecord', name: 'users'},
hasMany: {model: 'WR.model.Countries', name: 'countries'}
});
Ext.define('WR.model.Countries', {
extend: 'Ext.data.Model',
fields: ['label', 'continent'],
belongsTo: {model: 'WR.model.Email', name: 'emails'}
});
现在我想填充id为formJobSummary
的表单。我在存储中调用了这个函数,成功地实现了非嵌套JSON
listeners: {
load: function(users) {
var form = Ext.getCmp('formJobSummary');
form.loadRecord(this.data.first());
}
}
我的表单只有简单的显示字段,我想通过这个嵌套的JSON填充它们感谢
当前不能在表单字段定义中使用name="property.subProperty":(.
因此,为了实现这一点,我恢复了逻辑-将(一个冗余的)字段定义添加到模型中:
Ext.define('WR.model.WorkRecord', {
extend: 'Ext.data.Model',
fields: [
'name',
{name: 'emailFirst', mapping: 'emails.first'}
],
hasMany: {model: 'WR.model.Email', name: 'emails'}
});
然后您可以创建一个表单字段,如:
{
xtype: 'displayfield',
name: 'emailFirst',
...
}
它将被填充在表单.loadRecord()
您需要将您的Store子类化,并添加所需的配置。
Ext.define('MyJsonStore', {
extend: 'Ext.data.JsonStore',
requires: [
'WR.model.WorkRecord'
]
});
相关文章:
- 访问嵌套JSON对象的键,其中键是动态的
- 从多维嵌套json数组创建下拉列表
- 带嵌套json的下划线js查找
- 返回嵌套JSON中包含特定键的所有值
- 嵌套JSON到平面HTML表
- 原型Ajax请求参数为嵌套json
- 从对象数组中动态创建嵌套json
- ExtJS 4.1-检索嵌套JSON的hasOne信息
- 更新嵌套json Angularjs中的对象
- 访问嵌套 json 对象的属性将返回未定义
- 如何解析没有键的嵌套json's的javascript
- 显示嵌套json集合的主干
- 列表中呈现的骨干嵌套json对象
- 如何使用promise来反规范化嵌套json
- 正在读取嵌套json,jquery返回undefined
- Ionic/Angular:如何在嵌套json中导航
- 如何访问AngularJs中的嵌套Json对象
- 使用Javascript查找并更新嵌套JSON数组和对象中的所有键值
- 如何获取给定表单详细信息的嵌套json对象
- 通过Javascript中的递归迭代映射嵌套JSON