Я пытаюсь понять кое-что о модулях.
У меня есть AppModule (мой root модуль), который содержит PageModule и ServiceModule . PageModule использует службу из ServiceModule (и будущий модуль также будет, но не напрямую AppModule ). Я хочу, чтобы эта служба была одноэлементной, поэтому я использую следующий код в объявлении службы:
@Injectable({
providedIn: 'root'
})
Но я хочу, чтобы мой PageModule явно зависел от ServiceModule , чтобы будущие разработчики знали, что PageModule имеет эту зависимость. Должен ли я импортировать событие ServiceModule в PageModule , хотя он в основном ничего не делает? Следует ли мне импортировать ServiceModule в root AppModule ? Я что-то неправильно понял?
Насколько я понимаю:
Я должен использовать providedIn: 'root'
в ServiceModule (если только модуль, в котором я его использую, не является LazyLoaded) и импортировать ServiceModule непосредственно в PageModule без необходимости импортировать его в AppModule . Я прав?
Надеюсь вопрос не лишний. Я пытался ответить на другие вопросы и прочитать статьи о внедрении зависимостей и модулях Angular, но я не понимаю, является ли то, что я хочу, плохой практикой или нет.