0
什麼是對以下情形的最佳實踐和設計方法:模型協會,1個請求填充2個組件的最佳實踐
- 有一個JSON已經從有關於人與他們的信息服務器返回地址
- 我需要顯示一個人的一般信息和每個地址列表的表格。
- 在這個列表中,每個地址都是列表中的一個項目是強制性的,因爲它會多選真實以做其他事情。
我所做的是:
一)定義模型「假面」用的hasMany關係「Direccion」(西班牙語爲地址),我的代理是這裏的模型
b )定義一個模型「Direccion」
c)定義一個列表並嘗試使用itemTpl配置來顯示每個itemList的1個地址,但到目前爲止,我只能在同一個itemList中顯示給定人的所有地址。 有沒有辦法做到這一點?
鑑於這種情況,這種方法是否正確?
我試圖只做1個請求,只有1個商店來填寫這2個組件,但現在我對此有所懷疑。
那麼考慮到這種情況,最好的設計/實踐是什麼?
JSON響應
{
"personas": [
{
"id": 1,
"nombre": "jon",
"apellido": "caballero",
"direcciones": [
{
"direccionId": 1,
"calle": "fco villa",
"colonia": "barona"
},
{
"direccionId": 2,
"calle": "duraznos",
"colonia": "canutillo"
}
]
}
]
}
模式
Ext.define('Associations.model.Direccion', {
extend: 'Ext.data.Model',
config: {
idProperty: 'direccionId',
fields: [
{ name: 'calle', type: 'auto' },
{ name: 'colonia', type: 'auto' }
]
}
});
Ext.define('Associations.model.Persona', {
extend: 'Ext.data.Model',
requires: ['Associations.model.Direccion'],
config: {
fields: [
{ name: 'nombre', type: 'auto' },
{ name: 'apellido', type: 'auto' },
],
hasMany:[
{
foreignKey: 'direccionId',
associationKey: 'direcciones',
name: 'direcciones',
model: 'Associations.model.Direccion'
}
],
proxy: {
type:'ajax',
url: 'data/respuesta.json',
reader: {
type:'json',
rootProperty:'personas'
}
}
}
});
商店
Ext.define('Associations.store.Persona', {
extend: 'Ext.data.Store',
requires: [
'Associations.model.Persona'
],
config: {
model: 'Associations.model.Persona',
autoLoad: true
}
});
列表
Ext.define('Associations.view.PersonaList', {
extend: 'Ext.List',
xtype: 'personalist',
config: {
onItemDisclosure: true,
emptyText: 'No se encontraron personas',
store: 'Persona',
padding: 10,
margin: 10,
itemTpl : [
'<tpl for="direcciones">',
'<li>Colonia {colonia}</li>',
'<li>Calle {calle}</li>',
'</tpl>',
].join('')
}
});
任何想法? 在此先感謝。