Angular2 DI与ES2016装饰器?
发布时间:2020-12-17 17:39:03 所属栏目:安全 来源:网络整理
导读:这是我最接近的 on github 我的服务是 @Injectable() 导出类TodoService {} 但我不确定如何使用ES2016装饰器将其注入我的组件.它甚至是可能的,还是装饰器特定于原型?我在TS中知道有一个emitDecoratorMetadata选项. 解决方法 使用 providers或 viewProviders
这是我最接近的
on github
我的服务是 @Injectable() 但我不确定如何使用ES2016装饰器将其注入我的组件.它甚至是可能的,还是装饰器特定于原型?我在TS中知道有一个emitDecoratorMetadata选项. 解决方法
>使用
providers或
viewProviders为组件“提供”服务:
>将服务注入到指定参数类型的组件构造函数中: @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,请使用静态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依赖注入. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |