Правильно объявление InjectionToken
Добрый день!
Мне необходимо создать InjectionToken: переменную, которую я смогу инжектировать в мои компоненты. Есть замечательная документация, которая объясняет как это делается, но конкретно моего случая я не нашел. Либо не понял, что то он. :о) Есть переменная routesRoot, с роутами приложения. Объявленная в модуле. app.routes export const routesRoot: Routes = [...роуты...] app.module содержит такие строки: import { routesRoot } from './app.routes'; {provide: 'ROUTES_TREE', useValue: routesRoot}, И все работает. Такое решение я написал с кондачка, не заглядывая в доки. Когда полез в документацию, то понял, что там несколько иной подход используют и решил сделать "как правильно". Получилось так: app.module содержит такие строки: import { routesRoot } from './app.routes'; export const ROUTES_TREE = new InjectionToken<Routes>('ROUTES_TREE'); {provide: ROUTES_TREE, useValue: routesRoot}, Все бы замечательно, только не работает. :о( Можете подсказать что именно не правильно? Ошибка такая: ERROR NullInjectorError: StaticInjectorError(AppModule)[ROUTES_TREE]: StaticInjectorError(Platform: core)[ROUTES_TREE]: NullInjectorError: No provider for ROUTES_TREE! Спасибо. |
Хм... вообще я ошибки не вижу. Вот даже создал пример, всё работает https://stackblitz.com/edit/angular-.../app.module.ts
Пересобирите проект, проверьте файлы :) |
Перепроверил. :о) Ошибка была в вызове внутри компонента. Спасибо большое запомощь!
|
Часовой пояс GMT +3, время: 22:01. |