我有两个模型
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>
但是在helper主体中,我空了(未加载)answers
,只有id
fileds,所以我无法计算它们的值,因此此helper的结果为NaN
但是,{{#each answers}}
所有答案都加载完毕之后。
我可以以某种方式强制App.PollsRoute
在助手中或助手中加载相关对象吗?
尝试使用:
Ember.Handlebars.registerBoundHelper
代替:
Ember.Handlebars.helper
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句