アイテムのリストを処理し、ユーザーがアイテムの1つをクリック/選択したときにアイテムの詳細を表示するのが最善の方法だと思います。この例としては、左側のサイドバーに電子メールメッセージのリストを表示し、ユーザーがメッセージの1つをクリックしたときにメインコンテンツ領域にメッセージの詳細を表示する場合があります。
ルーターインフラストラクチャを使用してアクティブなメニュー項目をマークする方法に関する@pangrantzのすばらしい回答を使用して、実用的な例を思いつくことができました:jsFiddle
しかし、正しくないと思われることがいくつかあります。
まず、#connectOutlets
ルーターのshow
状態で、選択したメッセージをコントローラーに設定し、コンセントを同じオブジェクトに接続します。どちらかができると思います。
connectOutlets: function(router, context) {
router.set('messagesController.selected', context);
router.get('applicationController').connectOutlet('message-details', 'messageDetails', context);
}
index
次に、との両方の状態から同じ状態に移行していshow
ます。新しい状態に移行したいのかどうかさえわかりません。コンセントを接続したいだけです。
showDetails: Ember.Route.transitionTo('show')
このコードをより慣用的にするために変更できるものはありますか?ありがとう!