2017-01-19 2 views
0

Я знаю, что этот вопрос уже отправлен, но я не нашел обновленного или хорошо объясненного ответа.Ember, инжектируйте приложение-приложение шириной

Так у меня есть сервис «сеанс» & «текущего пользователь», которые имеют свой сеанс & текущий пользователь (очевидный) в памяти, и мне нужно, чтобы иметь эту услугу в каждых контроллерах, на самом деле, в каждом контроллере я сделать

session: service(), 
currentUser: service('current-user'), 

Вопрос в том, как сделать эти службы доступными для всех контроллеров без их повторного использования в каждом контроллере?

спасибо.

ответ

0

Хорошо я должен был задать вопрос, чтобы, наконец, найти ответ ...

Так я использовал инициализаторы, давайте сделаем это для моей службы текущего пользователя.

ember g initializer current-user 

Это создаст новый файл в приложение/инициализаторах/ток-user.js и я положил это в него

export function initialize(application) { 
    application.inject('route', 'currentUser', 'service:current-user'); 
    application.inject('controller', 'currentUser', 'service:current-user'); 
    application.inject('component', 'currentUser', 'service:current-user'); 
} 

export default { 
    name: 'current-user', 
    initialize 
}; 

В этом коде Exemple, я впрыснуть обслуживание текущего пользователя (thrid аргумент) внутри маршрутов, контроллеров & компонентов (первый аргумент), и он будет называться currentUser (второй аргумент).

Я надеюсь, что это поможет другим ppl :)

Смежные вопросы