如何将Angular2依赖项注入与javascript装饰器一起使用
How to use Angular2 dependency injection with javascript decorators?
我试图将服务(TodoStore)注入到我的组件(TodoList)中,但使用decorator失败了。它的唯一工作方式是使用构造函数参数装饰器
constructor(@Inject(TodoStore) store)
据我所知,这不是有效的ES7。我试图将注入放在类之前或构造函数之前,这两种方法都不适用于Webpack。我目前最符合标准的解决方案是
static get parameters() {
return [[TodoStore]];
}
我的问题是,在有效的ES6/ES7中有没有一种方法可以使用decorator来注入依赖项?
实际上,您不需要使用@Inject
注释。您的服务需要有@Injectable
注释。
import {Injectable} from 'angular2/core';
@Injectable()
export class TodoStore {
(...)
}
为了能够将其注入到组件中,只需将其添加到其构造函数的参数中并添加到其提供者列表中即可:
import {TodoStore} from './todoStore';
@Component({
selector: 'todo-list',
providers: [ TodoStore ],
template: `
(...)
`
})
export class TodoListComponent {
constructor(service:TodoStore) {
this.service = service;
}
(...)
}
希望它能帮助你,Thierry
试试这个:
import {Component, Inject} from 'angular2/core';
import {TodoStore} from './todoStore';
@Component(...)
export class TodoListComponent {
constructor(service) {
this.service = service;
}
...
}
// Workaround for parameter annotations
TodoListComponent.parameters = [new Inject(TodoStore)];
相关文章:
- Javascript-如何让脚本与Ajax请求的数据一起运行
- Javascript”;onmousemove”;事件无法与类一起使用
- 为什么不't我的ruby代码与javascript文件一起插入
- Javascript无法与Onsen一起在Cordova工作
- javascript中是否有更标准化的方法来转换(序列化)非表单数据以与ajax一起使用
- 使用javascript将两个输入的日期添加在一起
- AJAX:为什么不是't我的javascript与内容一起加载
- PHP、Javascript和SQL代码混杂在一起
- 我的HTML、CSS和Javascript应该放在一起还是分开
- 如何将window.setTimeout与javascript和模块模式一起使用
- 在 JavaScript 中使用侦听器将输入字段链接在一起
- 两个独立工作的javascript函数,但不能一起工作
- 如何有效地匹配两个不同 JavaScript 对象上的 id,并将它们合并在一起
- 使用 javascript 将各种输入字段添加到一起
- 如何将索引数据库与 Metrostyle Javascript 一起使用
- JavaScript 将字符串与退格符连接在一起
- JavaScript Stack - Web Server 和 API Server:一起或分开
- 如何将html中select选项的输入与javascript一起使用
- 将where子句与javascript变量一起使用
- 试着把这些东西组合在一起——JavaScript、HTML、PHP和重新加载内容