Угловой сервис зарегистрирован в контейнере без указания «оказано» - PullRequest
1 голос
/ 19 июня 2019

Угловые документы рекомендуют регистрация службы в контейнере 1) в корневой области, как правило, или 2) в области действия конкретного модуля.

Так в общем случае, вот так:

@Injectable({ providedIn: "root" })

Однако я вижу много кода, подобного этому:

@Injectable()

В таком случае, в каком объеме услуга будет зарегистрирована? Каковы последствия отсутствия указания области и как это влияет на дрожание дерева?

1 Ответ

1 голос
/ 19 июня 2019

В случае @Injectable() он регистрируется на уровне компонента или уровня модуля в providers массиве

Уровень компонента:

@Component({
    selector: 'my-app',
    template: '<h1>{{ title }}</h1>',
    providers: [ExampleService]
})

Уровень модуля:

@NgModule({
  //other metadata properties
  providers: [ExampleService]
})
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...