使用少量重複結構映射模型時,哪些模式已成功。 我必須建模和創建一個網格視圖與具有幾個列基本上是相同的重複結構的記錄。帶重複結構的ExtJS模型
Ext.define('Ep.mm.model.MyComparison', {
var derived = function(val,)
extend: 'Ext.data.Model',
fields : [
{name:'id',type:'string'},
{name:'count',type:'number'},
{name:'special',type:'number'},
{name:'A_a',type:'number'},
{name:'A_b',type:'number'}
{name:'A_derived',renderer = function(val,meta,rec){return rec.get('A_b')-rec.get('A_a')}}
{name:'B_a',type:'number'},
{name:'B_b',type:'number'}
{name:'B_derived',renderer = function(val,meta,rec){return rec.get('B_b')-rec.get('B_a')}}
{name:'C_a',type:'number'},
{name:'C_b',type:'number'}
{name:'C_derived',renderer = function(val,meta,rec){return rec.get('C_b')-rec.get('C_a')}}
]
});
我很可能與服務器模型/只在次數上不同的存儲結束了這一結構重複(A)(A,B)(A,B,C,d)。有沒有一種方法可以爲A,B,C,D中的每一個使用通用模型,並將公共模型重用爲類型。這與「嵌套」結構類似。
Ext.define('MyType',{
extend :'Ext.data.Model',
fields : [
{name : 'a', type:'number'},
{name : 'b', type:'number'},
{ name : 'derived',
convert : function(value, record) {
return record.get('a') - record.get('b');
}
}
]
}
然後MyComparison將被定義爲
Ext.define('Ep.mm.model.MyComparison',{
extend : 'Ext'data.Model',
fields : [
{name:'A', type:'MyType'}
{name:'B', type:'MyType'}
{name:'C', type:'MyType'}
]
});
我知道這是不完全正確,但是這是那種我試圖創建功能。 也許使用'hasOne'關聯類型?
這非常接近我的想法,並結合將所有A_ *數據聚合到一個字段中,將所有B_ *數據聚合到另一個字段中。由於A_ *數據和B_ *數據具有相同的一組字段,因此我希望他們可以使用另一個模型作爲字段的類型。我會更新這個問題來澄清這一點。 – gbegley