私は2つのモデルを持っています
App.Poll = DS.Model.extend({
id: DS.attr('string'),
title: DS.attr('string'),
answers: DS.hasMany('App.Answer')
});
App.Answer = DS.Model.extend({
id: DS.attr('string'),
value: DS.attr('number')
});
App.Poll.FIXTURES = [{
id: '1',
title: 'PollTitle',
answers: ['3', '4']
}];
App.Answer.FIXTURES = [{
id: '3',
value: 1
},{
id: '4',
value: 2
}];
App.PollsRoute = Ember.Route.extend({
model: function(){
return App.Poll.find('1');
}
});
モデルの配列で指定されたフィールドの値をカウントするヘルパーを作成しました
Ember.Handlebars.helper('fieldSum', function(arr, ops){
var res = 0;
arr.forEach(function(item){
res += item.get(ops.hash.field);
});
return new Handlebars.SafeString(res);
});
<div class="count">{{fieldSum answers field="value"}}</div>
しかし、ヘルパー本体では空 (ロードされていません)answers
になり、フィールドのみid
になったため、それらの値を数えることができず、このヘルパーの結果は NaN です
しかし、{{#each answers}}
すべての回答がロードされた後。
App.PollsRoute
ヘルパー内またはヘルパー内で関連オブジェクトを強制的にロードすることはできますか?