Вот простой пример реализации моей проблемы:
https://stackblitz.com/edit/angular-gqy1lk
У меня есть две страницы, которые импортируют модуль универсальный тест с определенной предоставляемой службой (используя ForChild), которая наследует службу ТестГенерикСервис.
Я использую Метод испытания в каждом сервисе, чтобы показать, в каком модуле страницы был вызван компонент Общий.
Как вы можете видеть в предварительном просмотре стекблиц, ссылка «page1» отображает Страница 2 вместо строки «Page1». И ссылка page2 отображает правильную строку Страница 2.
Кажется, что angular принимает только последний вызов для ребенкаТестОбщийМодуль, в этом случае, когда Page2модуль импортируется после Страница1Модуль
Что не так с моим использованием ForChild при предоставлении Услуги?
Можно ли импортировать модуль внутри других модулей, предоставив конкретную службу для внедрения только для области импортированного модуля?
Спасибо.
Хорошо, я нашел решение:
https://stackblitz.com/edit/angular-gqy1lk
Мне просто нужно было определить, какой провайдер я хочу использовать на уровне компонентов (провайдеров) вместо уровня модуля, используя forChild.
Теперь Service Injection правильный, из какого компонента (Page1 или Page2), откуда у меня есть компонент TestGeneric.