【发布时间】:2013-05-23 00:33:48
【问题描述】:
我目前的路线定义如下:
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);
}
}
我要做的事情:当我点击进入下一个播放器页面时,如果当前没有显示播放器,则过渡到 PlayersRoute,否则过渡到 PlayerRoute 以便转换完成后仍会显示播放器。
问题:有时 currentPlayer 变量并不总是为 null,即使当前没有显示任何玩家。有没有办法解决这个问题,也许是从某个地方获取当前路线?
【问题讨论】:
标签: ember.js