2011-05-08 14 views
2

ネストされたデータからその値を取得するようなものを作成することは可能ですか?Ext.data.Fieldネストされたデータから計算されたフィールド

私はこれを試してみましたが、それは動作しません:

Ext.define('User',{ 
    extend: 'Ext.data.Model', 
    fields: [ 
    {name: 'id', type: 'int'}, 
    {name: 'sum', type: 'float', persist: false, 
     convert: function(value, record) { 
     return record.products().sum('cost'); 
     }} 
    ], 
    hasMany: 'Product' 
}); 

Ext.define('Product',{ 
    extend: 'Ext.data.Model', 
    fields: [ 
    {name: 'id', type: 'int'}, 
    {name: 'cost', type: 'float'} 
    ] 
}); 

は、私は1つの応答でサーバーからデータをロードします。 そして、この時点で私はProductモデルのデータを変更し、手動でUserサムフィールドを更新するイベントをキャッチする必要があります。

答えて

0

これを試してみてください:

Ext.define('Product',{ 
    extend: 'Ext.data.Model', 
    fields: [ 
    {name: 'id', type: 'int'}, 
    {name: 'cost', type: 'float'} 
    ] 
}); 

Ext.define('User',{ 
    extend: 'Ext.data.Model', 
    fields: [ 
    {name: 'id', type: 'int'}, 
    {name: 'sum', 
     convert: function(value, record) { 
     var sum = 0; 
     Ext.each(record.products, function(cost){ sum += cost; }); 
     return sum; 
     }} 
    ], 
    hasMany: { model : 'Product', name : 'products' } 
}); 
関連する問題