каким-нибудь флагом?
К примеру: хочу через лейзи звать компонент из двух разных мест
Бизнес логика вся одинаковая, но может быть немного разная вьюшка (вырубить одно поле, например)
entryComponents вроде если правильно понял тебя
Можно через инжектор прокидывать конфиг
есть ли линка на доку? Буду очень признателен сходу загуглить не получилось
https://angular.io/guide/hierarchical-dependency-injection#elementinjector
скорее всего там не то)
https://angular.io/api/core/ViewContainerRef#createcomponent второй аргумент - инжектор. Прокидывайте туда Injector.create(this.injector, [{provide: SHOW_FIELD, useValue: true}] И ловите в компоненте constructor(@Inject(SHOW_FIELD) showField: boolean)
а мы можем же эту историю с лейзи-модулем провернуть? Чтобы из разных мест дергать один лейзи модуль , но с разным флагом
Да, вы передаете инжектор непосредственно перед созданием инстанса компонента и встраиванием его в шаблон. Т.е. каждый отдельный инстанс может иметь свой конфиг
спасибо еще раз) пошел тестировать
нет, наверное мы о разном Сейчас переформулирую вопрос Есть компонент, у него есть свой модуль, который я хочу с помощью лейзи грузить в двух других модулях. При этом могут быть отличия, которые я хотел бы прокинуть параметром (можно и роутер-параметром отделаться, но это не тру) Как прокинуть параметр, когда компонент планируется вызывать только с помощью: { path: 'causes’, loadChildren: () => import(‘./causes.module').then( (m) => m.CausesModule, ), } ? В текущий момент у меня под каждую ситуацию сделан еще один компонент, в который я просто вставляю тегом компонент с инпут параметром
Сделайте тогда аналог forRoot/forChild Типа forConfig(showField: boolean): ModuleWithProviders
{ path: 'causes’, loadChildren: () => import(‘./causes.module').then( (m) => m.CausesModule, ), data: { yourData: 'qwer'} } так?
типа того, да Эта дата как роутер-парам пойдет? или могу внутри компонента поймать?
Additional developer-defined data provided to the component via ActivatedRoute. By default, no additional data is passed.
благодарю! Сейчас попробую
Обсуждают сегодня