我有一个使用 Ember 数据存储从服务器中提取的帖子列表,然后我将其呈现在侧边栏列表中,例如视图,每个帖子使用 {{action}} 帮助器生成一个 href,该帮助器通过查找相应的路由器状态来生成一个有效的 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/