Verwendung providers oder viewProviders zu "liefern" Dienst für die Komponente:
Injekt Dienst in der Komponente Konstruktorparameter Typen spezifiziert:
@Component({
// ...
providers: [TodoService]
})
class TodoComponent() {
constructor(todoService: TodoService) {
this.todoService = todoService;
}
}
oder Inject
Parameter decorator verwenden.
@Component({
// ...
providers: [TodoService]
})
class TodoComponent() {
constructor(@Inject(TodoService) todoService) {
this.todoService = todoService;
}
}
Parameter Dekorateure nicht Teil der ES2016 sind (Sie es als Typoskript spezifische betrachten kann). Aber sie können added to the standard later sein).
Wenn Sie wirklich ES6/ES7 verwenden möchten, verwenden Sie statische Getter für parameters
:
@Component({
// ...
providers: [TodoService]
})
class TodoComponent() {
static get parameters() {
return [[TodoService]]; // you can also return just [TodoService]
}
constructor(todoService) {
this.todoService = todoService;
}
}
Auch ich Ihnen empfehlen angular2 Dependency Injection besser zu lesen this article zu verstehen.
Also beide dieser Implementierungen Typescript-spezifisch? Es gibt keine Möglichkeit, ES2016-Dekoratoren zu verwenden (ohne Parameter-Dekoratoren, danke für den Link)? – iksose
@iksose Ich habe ein Beispiel für ES6/ES7 hinzugefügt – alexpods
Perfekt! Funktioniert wunderbar, danke @alexpods – iksose