Сервисы внедряются в конструкторы компонентов, директив, сервисов и т. Д., Они предоставляются на корне, на уровне модулей или компонентов.Не существует концепции внедрения услуги на уровне модуля.Вы можете предоставлять услугу на уровне модуля, это означает, что один и тот же экземпляр этой службы будет внедрен во все элементы модуля, которые запрашивают услугу.Если ваша служба используется только в одном модуле, то предоставление ее на уровне корня или модуля вообще не имеет значения, в конечном итоге все запросы на внедрение получают один и тот же экземпляр.
Хорошо простоПредоставляйте все свои услуги на корневом уровне и не беспокойтесь о том, где они используются.Единственный раз, когда вам нужно предоставить сервис, отличный от корневого, - это когда вам нужны уникальные экземпляры сервиса в разных местах.Просто скажите, что иерархия компонентов совместно использует данные с общей службой, и вы не хотите, чтобы эти данные были доступны вне компонентов, тогда у вас самый верхний компонент, предоставляющий услугу, и тогда все дочерние элементы этого компонента получат один и тот же экземпляр, но другойЭкземпляр родительского компонента будет иметь свой собственный уникальный экземпляр.
Предоставление компонентов на уровне модуля на самом деле не является обязательным с введением в корневой каталог.