Как всегда, когда доступно несколько решений, это зависит от того, чего вы хотите достичь. Но документация дает вам некоторую директиву на выбор.
Иногда нежелательно, чтобы услуга всегда предоставлялась в
корневой инжектор приложения. Возможно, пользователям следует явно отказаться
использовать сервис, или услуга должна быть предоставлена в
лениво загруженный контекст. В этом случае провайдер должен быть связан
с конкретным @NgModule class
, и будет использоваться любым
Инжектор включает в себя этот модуль.
Таким образом, в основном вы будете использовать providedIn: 'root'
для любых служб, охватывающих все приложения. Для других сервисов продолжайте использовать старую версию.
Не забывайте, что у вас уже был выбор предоставлять услуги по-другому. Например, также возможно объявить Injectable на уровне компонента (это не меняется в V6).
@Component({
selector: 'app-my-component',
templateUrl: './my.component.html',
providers: [ MyService ]
})
Таким образом, сервис становится доступным только в MyComponent
и его дереве подкомпонентов.