Ember Datastore を使用してサーバーから取得した投稿のリストがあり、それをビューのようなサイドバー リストにレンダリングします。各投稿は、対応するルーターの状態を検索して有効な href を生成する {{action}} ヘルパーを使用して href を生成します. 投稿をクリックすると、コンテンツ アウトレットに読み込まれます。これはすべて完璧に機能します。
アイテムが選択されたとき、たとえば「is-active」など、アイテムをクリックしたとき、またはルーターの状態がhrefに一致する状態に遷移したときに、クラスをアイテムに追加したいと思います。戻るボタンを押すか、/posts/24 に直接移動すると、ID 24 の投稿が選択されます。
理想的には、これに対する解決策を実際の Post レコードから分離したいと思います。これは純粋にプレゼンテーションの問題であり、同じ原則を使用してメニュー項目を強調表示するためにこのアプローチも使用したいと考えています。
これを行う一般的に受け入れられている方法は何ですか?
編集:
App.Router: Ember.Router.extend(
root: Ember.Route.extend(
goToPostsIndex: Ember.State.transitionTo('posts.index')
goToAbout: Ember.State.transitionTo('about')
goToShowPost: Ember.State.transitionTo('posts.show')
index: Ember.Route.extend(
route: '/'
redirectsTo: "posts.index"
)
posts: Ember.Route.extend(
route: '/posts'
index: Ember.Route.extend(
route: '/'
connectOutlets: ((router) ->
router.get('applicationController').connectOutlet('posts', App.posts)
)
)
show: Ember.Route.extend(
route: '/posts/:post_id'
connectOutlets: (router, post) ->
router.get('postsController').connectOutlet('post', post)
)
)
about: Ember.Route.extend(
route: '/about'
connectOutlets: (router) ->
router.get('applicationController').connectOutlet('about')
)
)
)
)
ここに私の現在のセットアップのフィドルがあります: http://jsfiddle.net/Pts7Q/31/