2014-10-04 18 views
1
呈現

我有機型意外的文本被灰燼

// models/group 
export default DS.Model.extend({ 
    parent: DS.belongsTo('parent'), 
    items: DS.hasMany('item', {async: true}), 

    quantity: Ember.computed.sum('[email protected]'), 

}); 

// models/item 
export default DS.Model.extend({ 
    ... 
    quantity: DS.attr('number') 
}); 

在我的模板(與controller.model設置爲parent)我嘗試呈現

{{#each group}} 
    {{quantity}} 
{{/each}} 

,並期望號碼的列表,而是呈現的是像<[email protected]:item::ember1036:165>

文本列表我猜測異步承諾只能在渲染後解決,但爲什麼它沒有更新?

回答

2

我不相信總和會從集合中的每個項目拉動屬性。我相信它必須是一個數字的集合。

quantities: function(){ 
    return this.get('items').getEach('quantity'); 
}.property('[email protected]'), 

quantity: Ember.computed.sum('quantities'), 
+0

你是對的:https://github.com/emberjs/ember.js/blob/v1.7.0/packages/ember-runtime/lib/computed/reduce_computed_macros.js#L29 – Microfed 2014-10-04 07:25:09

+0

我是正確的認爲「數量」也可以表示爲數量:Ember.computed.mapBy('items','quantity')'? – aquavitae 2014-10-14 09:39:08