我有一个模型,用于存储多个化学品列表。每个 hasMany
的化学模型都是相同的关系。
我需要这样的东西:
Ext.define('HandSurvey.model.ChemicalRisks', {
extend: 'Ext.data.Model',
requires: ['Ext.data.identifier.Uuid'],
config: {
idProperty: 'id',
identifier: 'uuid',
fields: [
{ name: 'id', type: 'auto' }
],
associations: [
{
type: 'hasMany',
model : 'HandSurvey.model.SpecificChemical',
name : 'fiberglassResins',
store : {
type: 'sql'
}
},
{
type: 'hasMany',
model : 'HandSurvey.model.SpecificChemical',
name : 'paintsStains',
store : {
type: 'sql'
}
},
],
proxy: {
type: 'sql'
}
}
});
但这会导致每个列表绑定(bind)到每个 SpecificChemical
属于ChemicalRisks
模型,而不仅仅是那些属于该 hasMany
的模型。似乎我需要加入多个字段
可以这样做吗?或者我是否必须制作一堆具有不同名称的完全相同的模型/商店?
最佳答案
当然可以!
使用关联 key 和关联的自动生成存储
associations: [
{
type: 'hasMany',
model : 'HandSurvey.model.SpecificChemical',
name : 'fiberglassResins',
associationKey : 'fiberglassResins'
},
{
type: 'hasMany',
model : 'HandSurvey.model.SpecificChemical',
name : 'paintsStains',
associationKey : 'paintsStains'
},
]
给出这样的响应:{
"response" : {
"fiberglassResins": [
{
"id" : 1
"name" : "Polyester"
},
{
"id" : 2
"name" : "E-Glass"
}
],
"paintsStains": [
{
"id" : 1
"name" : "item1"
},
{
"id" : 2
"name" : "item2"
}
]
}
}
然后,将主模型绑定(bind)到商店(例如 ItemsStore)。 重要的是 ItemsStore 的每条记录都将由 Sencha 自动生成:fibreglassResinsStore 和 PaintsStainsStore。
您可以通过 console.log() 每条记录来查看实际的存储情况。
关于extjs - 是否可以使用同一模型拥有多个 hasMany 关系?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25751205/