我有两个型号
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');
}
});
我创建了helper,它计算模型数组中指定字段的值
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
或我的助手中的相关对象吗?
答案 0 :(得分:0)
尝试使用:
Ember.Handlebars.registerBoundHelper
而不是:
Ember.Handlebars.helper