首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >带有Angular2装饰器的ES2016 DI?

带有Angular2装饰器的ES2016 DI?
EN

Stack Overflow用户
提问于 2015-10-28 20:09:38
回答 1查看 272关注 0票数 5

这是我最近得到的on github

我的服务是

@Injectable() export class TodoService {}

但是,我不知道如何使用ES2016装饰器将它注入到组件中。这是可能的,还是装潢工的打字稿具体?我知道在TS中有一个emitDecoratorMetadata选项。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-10-28 21:01:48

  1. 使用providersviewProviders向组件“提供”服务:
  2. 将服务注入指定参数类型的组件构造函数中:
代码语言:javascript
复制
@Component({
  // ...
  providers: [TodoService]
})
class TodoComponent() {

  constructor(todoService: TodoService) {
    this.todoService = todoService;
  }
}

或者使用Inject参数修饰器。

代码语言:javascript
复制
@Component({
  // ...
  providers: [TodoService]
})
class TodoComponent() {

  constructor(@Inject(TodoService) todoService) {
    this.todoService = todoService;
  }
} 

参数修饰器不是ES2016的一部分(您可以认为它是特定于TypeScript的)。但他们可以是added to the standard later)。

如果您真的想使用ES6/ES7,请为parameters使用静态getter

代码语言:javascript
复制
@Component({
  // ...
  providers: [TodoService]
})
class TodoComponent() {

  static get parameters() {
    return [[TodoService]]; // you can also return just [TodoService]
  }

  constructor(todoService) {
    this.todoService = todoService;
  }
} 

此外,我建议您阅读this article以更好地理解angular2依赖注入。

票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/33400693

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档