У меня есть свойства и методы, которые я хочу предоставить большинству/всем экземплярам класса (т. е. всем, кроме нескольких маршрутов, контроллеров и т. д.). Кажется, есть несколько способов сделать это, и я ищу рекомендации по передовому опыту здесь.
В частности, я создал свойство в своем контроллере приложения для хранения объекта пользовательского сеанса. Я хочу, чтобы все другие контроллеры отображали эти данные, как если бы я набрал:
needs: ['application'],
userSession: Ember.computed.alias('controllers.application.userSession')
непосредственно в контроллер.
Кроме того, я хочу переопределить все маршруты (кроме маршрута входа и, возможно, еще пару) реализаций beforeModel, чтобы проверить наличие userSession и перенаправить на маршрут входа, если он отсутствует.
Это реализуется в ember-cli FYI. Итак, в таком случае, каков здесь «правильный» подход? Пытаюсь ли я внедрить эти изменения через инициализаторы/сервисы? Создаю ли я примеси для этого (я не сторонник того, чтобы помнить об этом каждый раз, когда кто-то, работающий над этим, встраивает g-контроллер, который затем должен помнить о добавлении примеси).
needs
-инг контроллера. Если вам это нужно только в нескольких контроллерах, то внедрение его именно в них может по-прежнему быть самым чистым решением с наименьшим шаблоном, хотя не обязательно очевидно, что оно вводится из точки зрения самого контроллера. 16.09.2014