Ember:hasMany关系并不总是在transitionTo上加载

时间:2016-04-30 02:35:19

标签: ember.js ember-data

我想我错过了关于Ember Data如何运作的一些信息。我有一条路线可以更新团队中球员的统计数据:

-p

我第一次更新统计数据时,我转换到了团队路线,这看起来就像我期望的那样(我看到团队中所有玩家的统计数据)。如果我第二次提交统计数据,我只会看到一些玩家。目前,我的团队路线如下所示:

    export default Ember.Route.extend({
        stats: Ember.inject.service('constants'),
        actions: {
            submitStats(updates){
                let id = this.get('context').get('id');
                let team = this.store.findRecord('team', id);
                let players = team.then(t => t.get('players'));
                players.then(ps => savePlayers(ps, updates, this.get('stats')))
                       .then(p => {console.log("All saved!");
                                   this.transitionTo('team', team.get('id'))})
            }
        },

        init() {
            // we seemingly need to make sure all the players are loaded
            // before calling the component
            this.store.findAll('player');
        }
    });

我假设我失踪了...关于模型和过渡如何协同工作的事情。它是什么?

编辑:通过在transitionTo行之前插入export default Ember.Route.extend({ beforeModel(transition){ return this.store.findAll('player') }, model(params){ return this.store.findAll('player').then(p => {console.log("players loaded"); return this.store.findRecord('team', params.team_id)}) } }); 来明确重新加载团队的玩家似乎能得到我想要的东西。除非有时这个承诺没有解决,所以我永远不会过渡。我真的很想知道发生了什么 - 似乎很多我与人际关系的互动涉及随意加载事物,直到所有玩家出现。

0 个答案:

没有答案