ExtJS:具有 child 的有效模型,不能使用 HasOne,因为我没有关联 ID?
ExtJS: Vallid model with child, can't use HasOne as I have no association ID?
这是一个有效的模型吗?我好像没有工作?也许我必须使用 HasOne,但问题是它有关联键而我的数据没有。
{name:'name', type: 'string'},
{name: 'desc', type: 'string', defaultValue: 'NA'},
{name:'item', fields: [
{name: 'name'},
{name: 'desc'},
]}
在上面,我将名称 Item 与另一个字段数组一起使用。也许这不正确?以上是正确的语法吗?
如果我必须使用 HasOne 关联,我似乎需要提供一个关联键,但我的数据没有关联键。这是一个示例 JSON 记录。
{"name" : "test item",
"desc" : "my temporary desc"
"item" : [
{ "name" : "item 1",
"desc" : "item 1 desc"
}
]
}
正如您从上面看到的,我有主要项目 "test item",它以 1 child 到达,但是 child 没有关联 ID,即 child 到 parent。没有干草 ID,它只是一个 json 复合体 object.
我真的很纠结这个。有什么想法吗?
我正在使用休息代理并且 reader 是 'son'
有什么想法吗?
有点迷糊。 HasOne 听起来确实很理想,但我在那里没有关系。
提前致谢
您不需要协会 ID。为了实现你的愿望
你需要提供两个模型。一份给parent,一份给"hasone" children。您还需要指定 "how" 以在 parent 模型中查找 child /children 的数据,如下所示:
Ext.define('User', {
extend: 'Ext.data.Model',
fields: [{name:"fullName",type:"string"}],
hasOne: [{name: 'address', model: 'Address', associationKey: 'address',getterName: 'getAddress', associatedName: 'address'}]
});
Ext.define('Address', {
extend: 'Ext.data.Model',
fields: ['city','state']
});
associationKey 非常重要,因为它告诉 extjs 在用户数据中在哪里找到 Address 模型的数据。使用 getterName 属性,您可以指定用于检索 child 的函数。
传递的数据需要看起来像这样:
store.loadRawData({"fullName":"Lucian","address":{"city":"Compton","state":"Ca"}});
看看我做的这个工作 fiddle:
https://jsfiddle.net/1fjyrjn5/2/
还有一些参考资料帮助我解决了这个问题:
Extjs hasone association
这是一个有效的模型吗?我好像没有工作?也许我必须使用 HasOne,但问题是它有关联键而我的数据没有。
{name:'name', type: 'string'},
{name: 'desc', type: 'string', defaultValue: 'NA'},
{name:'item', fields: [
{name: 'name'},
{name: 'desc'},
]}
在上面,我将名称 Item 与另一个字段数组一起使用。也许这不正确?以上是正确的语法吗?
如果我必须使用 HasOne 关联,我似乎需要提供一个关联键,但我的数据没有关联键。这是一个示例 JSON 记录。
{"name" : "test item",
"desc" : "my temporary desc"
"item" : [
{ "name" : "item 1",
"desc" : "item 1 desc"
}
]
}
正如您从上面看到的,我有主要项目 "test item",它以 1 child 到达,但是 child 没有关联 ID,即 child 到 parent。没有干草 ID,它只是一个 json 复合体 object.
我真的很纠结这个。有什么想法吗?
我正在使用休息代理并且 reader 是 'son'
有什么想法吗?
有点迷糊。 HasOne 听起来确实很理想,但我在那里没有关系。
提前致谢
您不需要协会 ID。为了实现你的愿望 你需要提供两个模型。一份给parent,一份给"hasone" children。您还需要指定 "how" 以在 parent 模型中查找 child /children 的数据,如下所示:
Ext.define('User', {
extend: 'Ext.data.Model',
fields: [{name:"fullName",type:"string"}],
hasOne: [{name: 'address', model: 'Address', associationKey: 'address',getterName: 'getAddress', associatedName: 'address'}]
});
Ext.define('Address', {
extend: 'Ext.data.Model',
fields: ['city','state']
});
associationKey 非常重要,因为它告诉 extjs 在用户数据中在哪里找到 Address 模型的数据。使用 getterName 属性,您可以指定用于检索 child 的函数。
传递的数据需要看起来像这样:
store.loadRawData({"fullName":"Lucian","address":{"city":"Compton","state":"Ca"}});
看看我做的这个工作 fiddle: https://jsfiddle.net/1fjyrjn5/2/
还有一些参考资料帮助我解决了这个问题:
Extjs hasone association