Ember.js从afterModel访问模型值

时间:2014-04-08 17:34:19

标签: javascript ember.js

我有一个游戏模型。每个游戏都有多张牌。

App.GameRoute = Ember.Route.extend({
    model: function (params) {
        return this.store.find('game', params.game_id);
    },
    afterModel: function (model) {
        var store, gameId, promises;

        store = this.get('store');
        gameId = model.get('id');

        promises = [
            store.find('card', { gameId: gameId })
        ];

        return Ember.RSVP.all(promises);
    }
});

当我去特定游戏时,所有相关的卡都会成功加载。

在我的模板中,我想循环遍历所有卡片。我怎样才能做到这一点? 我尝试了{{#each}}的所有可能变体,但没有任何效果。 此外,当我查看Ember Chrome工具栏并查看“数据”选项卡时,所有卡片都在那里。

1 个答案:

答案 0 :(得分:3)

我通过改变路线来修复它:

App.GameRoute = Ember.Route.extend({
    model: function (params) {
        return Ember.RSVP.hash({
            game: this.store.find('game', params.game_id),
            cards: this.store.find('cards', { gameId: params.game_id })
        });
    }
});

我现在可以通过这种方式遍历卡片:

{{#each card in Cards}}
    {{card.id}}
{{/each}}