Я определил 3 компонента в своем приложении. AppComponent, MainComponent и TextComponent.Angular2 - Поставщик услуг не найден
AppComponent содержит MainComponent следующим образом. Обратите внимание, что у меня есть две службы, я включил в атрибуте поставщиков, CommonEventsService, CommonProductEventsService
@Component({
selector: 'my-app',
template: `
<my-main></my-main>
`,
providers: [CommonEventsService, CommonProductEventsService],
directives: [ROUTER_DIRECTIVES, MainComponent]
})
export class AppComponent implements OnInit, OnDestroy {...}
Основной компонент включен в директивы атрибута в AppComponent. Основной компонент определяется следующим образом:
@Component({
template: "<my-add-text></my-add-text>",
selector: "my-main",
directives: [TextComponent]
})
export class MainComponent implements OnInit, OnDestroy {...}
Обратите внимание, что я включил TextComponent в атрибут директивы выше. TextComponent определяется следующим образом:
@Component({
selector: "my-add-text",
templateUrl: "/app/scripts/components/add/text.component.html",
})
export class TextComponent {
constructor(private commonProductEvents: CommonProductEventsService){}
}
Проблема заключается в том, что при загрузке приложения, я получаю следующее сообщение об ошибке.
EXCEPTION: No provider for CommonProductEventsService! (TextComponent -> CommonProductEventsService) in [addText in [email protected]:13]
Но я зарегистрировал службу CommonProductEventsService в AppComponent. Так почему я получаю эту ошибку?
Есть ли ограничение на количество услуг могут быть объявлены в провайдеров: [] массив? У меня есть 20 сервисов, объявленных там и в дочерних компонентах, это ошибка. –
Я не думаю, что есть предел, по крайней мере, не такой маленький. –
И действительно ли порядок, в котором определены услуги, имеет значение? Если у них есть зависимости друг от друга? –