将 属性 从嵌套模型映射到 extjs 表单视图
Mapping property from nested model into extjs form view
我有一个 JSON
喜欢:
{
"id": "d258832c-c454-4961-9013-40ab222930d9",
"name": "CDS_BU",
"description": null,
"parentId": null,
"group": {
"id": "ef01eb78-2ae0-43ed-844e-57a825b046eb",
"name": "GroupForCDSBU2"
}
}
我有一个 form
和这个对象的视图,但是我无法在加载时在表单中显示 group.name
的当前值。
当前表单扩展自 Ext.form.Panel
,我正在使用 initComponent
将值分配给表单。即
me.items = [{
name: 'name',
xtype: 'textfield',
fieldLabel: "Name"
}, {
name: 'description',
xtype: 'textareafield',
fieldLabel: "Comments"
}]
这当前有效并显示来自 description
和 name
的值。
我为小组创建了一个模型,例如:
Ext.define('GroupModel', {
extend: 'Ext.data.Model',
fields: [{
name: 'id',
defaultValue: null,
type: 'string',
useNull: true
}, {
name: 'name',
defaultValue: null,
type: 'string',
useNull: true
}]
});
我们将命名为 Parent
的父对象的另一个模型,例如:
Ext.define('ParentEditModel', {
extend: 'Ext.data.Model',
fields: [
{
name: 'name',
defaultValue: ''
}, {
name: 'description',
defaultValue: ''
}
...
]
对于最后一个模型,我尝试了 hasOne
关联
赞:
hasOne: {model: 'GroupModel', name: 'group' }
并使用以下签名向其中添加了一个新字段:
{name: 'groupName', mapping: 'group.name'}
显然这行不通,因为据我所知,这需要一个 associationKey
,而我当前的 model
.
中没有
简而言之,如何将这两个参数(组:id,名称)映射到表单视图中的输入。
在这种情况下,您不需要关联模型,您可以使用父模型中的映射,不需要关联键或其他任何东西。
这是一个 jsfiddle:http://jsfiddle.net/ncLvaupn/
Ext.define('ParentEditModel', {
extend: 'Ext.data.Model',
fields: [
{
name: 'name',
defaultValue: ''
}, {
name: 'description',
defaultValue: ''
}, {
name: 'groupName',
mapping: 'group.name'
}
...
]
我有一个 JSON
喜欢:
{
"id": "d258832c-c454-4961-9013-40ab222930d9",
"name": "CDS_BU",
"description": null,
"parentId": null,
"group": {
"id": "ef01eb78-2ae0-43ed-844e-57a825b046eb",
"name": "GroupForCDSBU2"
}
}
我有一个 form
和这个对象的视图,但是我无法在加载时在表单中显示 group.name
的当前值。
当前表单扩展自 Ext.form.Panel
,我正在使用 initComponent
将值分配给表单。即
me.items = [{
name: 'name',
xtype: 'textfield',
fieldLabel: "Name"
}, {
name: 'description',
xtype: 'textareafield',
fieldLabel: "Comments"
}]
这当前有效并显示来自 description
和 name
的值。
我为小组创建了一个模型,例如:
Ext.define('GroupModel', {
extend: 'Ext.data.Model',
fields: [{
name: 'id',
defaultValue: null,
type: 'string',
useNull: true
}, {
name: 'name',
defaultValue: null,
type: 'string',
useNull: true
}]
});
我们将命名为 Parent
的父对象的另一个模型,例如:
Ext.define('ParentEditModel', {
extend: 'Ext.data.Model',
fields: [
{
name: 'name',
defaultValue: ''
}, {
name: 'description',
defaultValue: ''
}
...
]
对于最后一个模型,我尝试了 hasOne
关联
赞:
hasOne: {model: 'GroupModel', name: 'group' }
并使用以下签名向其中添加了一个新字段:
{name: 'groupName', mapping: 'group.name'}
显然这行不通,因为据我所知,这需要一个 associationKey
,而我当前的 model
.
简而言之,如何将这两个参数(组:id,名称)映射到表单视图中的输入。
在这种情况下,您不需要关联模型,您可以使用父模型中的映射,不需要关联键或其他任何东西。
这是一个 jsfiddle:http://jsfiddle.net/ncLvaupn/
Ext.define('ParentEditModel', {
extend: 'Ext.data.Model',
fields: [
{
name: 'name',
defaultValue: ''
}, {
name: 'description',
defaultValue: ''
}, {
name: 'groupName',
mapping: 'group.name'
}
...
]