我想我错过了关于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)})
}
});
来明确重新加载团队的玩家似乎能得到我想要的东西。除非有时这个承诺没有解决,所以我永远不会过渡。我真的很想知道发生了什么 - 似乎很多我与人际关系的互动涉及随意加载事物,直到所有玩家出现。