我目前的路线定义如下:
App.Router.map(function() {
this.resource('players', { path: ':page_id' }, function() {
this.resource('player', { path: ':player_id' });
});
});
这个想法是我在左边有一个玩家姓名列表。显示的播放器名称取决于 page_id。在右侧,我根据 player_id 显示单个玩家及其所有信息。问题是,两者都是独立的,这意味着我可以在第三个播放器页面上,同时显示列表中的第一个播放器,或者根本没有播放器。
我一直在尝试做的是这样的事情,这是 PlayersController 中的一个方法,当我单击转到下一个播放器页面时会调用它:
doTransition: function() {
var players = App.Player.findAllForPage(this.playersPerPage, this.currentOffset);
players.reopen({
id: this.currentOffset
});
var playerController = this.get('controllers.player');
var currentPlayer = playerController.getWithDefault('content');
if (currentPlayer) {
this.transitionToRoute('player', players, currentPlayer);
} else {
this.transitionToRoute('players', players);
}
}
我正在尝试做的事情:当我单击转到下一个播放器页面时,如果当前没有显示播放器,则过渡到 PlayerRoute,否则过渡到 PlayerRoute,以便在过渡完成后仍然显示播放器。
问题:有时 currentPlayer 变量并不总是为空,即使当前没有显示任何玩家。有没有办法解决这个问题,也许是从某个地方获取当前路线?