1

私は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ヘルパー内またはヘルパー内で関連オブジェクトを強制的にロードすることはできますか?

4

1 に答える 1

0

使用してみてください:

Ember.Handlebars.registerBoundHelper

それ以外の:

Ember.Handlebars.helper
于 2013-08-16T19:33:41.923 に答える