У меня есть список сообщений, вытаскиваемых с сервера с использованием Ember Datastore, которые я затем отображаю в списке боковой панели, например view, каждое сообщение генерирует href с помощью помощника {{action}} который генерирует действительный href, просматривая соответствующее состояние маршрутизатора. Нажатие на сообщение загружает его в контентную розетку. Все это прекрасно работает.Активный элемент Ember Router при изменении кликов или маршрутов
Я хочу добавить класс к элементу, когда он выбран - например, «активен» - либо при нажатии на него, либо когда состояние маршрутизатора переходит в состояние, соответствующее href, например: когда пользователь нажимает кнопку «Назад» или переходит непосредственно к/posts/24, появляется сообщение с идентификатором 24.
В идеале я хотел бы, чтобы решение этого было отделено от фактической записи Post, поскольку это чисто презентационная вещь, и я также хочу использовать этот подход для выделения пунктов меню с использованием того же принципа.
Каков общепринятый способ сделать это?
Edit:
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/
Я не знаю, видели ли вы это или даже если это по-прежнему актуально, но в вашем списке сообщений ссылки имеют неправильный url ('href = '/ posts/posts/undefined''). У всех из них «неопределенный» как идентификатор, он работает из-за действия помощника на данный момент – MilkyWayJoe