Каков синтаксис для использования нескольких провайдеров в классе компонентов?
Мне нужно использовать дополнительный сервис в моем компоненте. Кажется, я должен быть в состоянии сделать это так
@Component({
selector: 'page-home',
templateUrl: 'home.html',
providers: [firstService, additionalService]
})
но это не работает
1 ответ
Решение
Без дополнительного кода трудно понять, как вы пытаетесь реализовать свои услуги. Angular Components потребляют сервисы посредством внедрения зависимостей в конструктор класса компонента, например:
@Component({
selector: 'page-home',
templateUrl: 'home.html',
providers: [firstService, additionalService]
})
export MyClassComponent {
constructor(private svc1: firstService, private svc2: additionalService} {
}
method1() {
this.svc1.someMethod();
}
}
Экземпляр службы будет создаваться каждый раз, когда вы регистрируете его в качестве поставщика. Лучше предоставлять услуги на уровне модуля приложения, а не в компоненте. Службы создаются как одиночные, а затем вводятся везде, где они необходимы. Более подробную информацию о модулях и поставщиках услуг можно найти здесь, в Angular Docs.