这是我最近得到的on github
我的服务是
@Injectable() export class TodoService {}
但是,我不知道如何使用ES2016装饰器将它注入到组件中。这是可能的,还是装潢工的打字稿具体?我知道在TS中有一个emitDecoratorMetadata选项。
发布于 2015-10-28 21:01:48
@Component({
// ...
providers: [TodoService]
})
class TodoComponent() {
constructor(todoService: TodoService) {
this.todoService = todoService;
}
}或者使用Inject参数修饰器。
@Component({
// ...
providers: [TodoService]
})
class TodoComponent() {
constructor(@Inject(TodoService) todoService) {
this.todoService = todoService;
}
} 参数修饰器不是ES2016的一部分(您可以认为它是特定于TypeScript的)。但他们可以是added to the standard later)。
如果您真的想使用ES6/ES7,请为parameters使用静态getter
@Component({
// ...
providers: [TodoService]
})
class TodoComponent() {
static get parameters() {
return [[TodoService]]; // you can also return just [TodoService]
}
constructor(todoService) {
this.todoService = todoService;
}
} 此外,我建议您阅读this article以更好地理解angular2依赖注入。
https://stackoverflow.com/questions/33400693
复制相似问题