Каков синтаксис для использования нескольких провайдеров в классе компонентов?

Мне нужно использовать дополнительный сервис в моем компоненте. Кажется, я должен быть в состоянии сделать это так

@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.

Другие вопросы по тегам