1

我有两个模型

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或在我的助手中加载相关对象吗?

4

1 回答 1

0

尝试使用:

Ember.Handlebars.registerBoundHelper

代替:

Ember.Handlebars.helper
于 2013-08-16T19:33:41.923 回答