現在、ルートを次のように定義しています。
App.Router.map(function() {
this.resource('players', { path: ':page_id' }, function() {
this.resource('player', { path: ':player_id' });
});
});
アイデアは、左側にプレイヤー名のリストがあるということです。表示されるプレイヤー名は、page_id によって異なります。右側には、player_id に基づいて 1 人のプレーヤーとそのすべての情報が表示されます。問題は、どちらも独立していることです。つまり、リストの最初のプレーヤーを表示しているときに、3 番目のプレーヤー ページにいることも、プレーヤーがまったく表示されないこともあります。
これは、次のプレーヤー ページに移動するためにクリックしたときに呼び出される 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 ではない場合があります。おそらくどこかから現在のルートを取得することで、これを回避する方法はありますか?