使用appInject vs@inject decorator将NgZone注入angular2组件构造函数
我需要在我的ng2组件中获得对当前ngzone的引用。查看源代码,bootstrap方法将NgZone绑定到新创建的实例使用appInject vs@inject decorator将NgZone注入angular2组件构造函数,angular,dependency-injection,Angular,Dependency Injection,我需要在我的ng2组件中获得对当前ngzone的引用。查看源代码,bootstrap方法将NgZone绑定到新创建的实例 bind(NgZone).toValue(zone) 这意味着我应该能够将其注入到我的组件中。我的第一种方法是在appInjector数组中声明它 @Component({ selector:"todo-app", appInjector:[Store, TodoFactory, **NgZone**], lifecycle:[onDestroy]
bind(NgZone).toValue(zone)
这意味着我应该能够将其注入到我的组件中。我的第一种方法是在appInjector数组中声明它
@Component({
selector:"todo-app",
appInjector:[Store, TodoFactory, **NgZone**],
lifecycle:[onDestroy]
})
@View({ templateUrl: 'todo.html', directives: [NgFor] })
class TodoApp {
constructor(todoStore:Store, factory: TodoFactory, zone:NgZone) {
}
}
但是,我认为这会导致以下错误
实例化令牌(ComponentRef)时出错!。原始错误:
无法解析NgZone的所有参数。确保他们都有
有效的类型或批注
解决方法是在参数上使用@injectdecorator
@Component({
selector:"todo-app",
appInjector:[Store, TodoFactory],
lifecycle:[onDestroy]
})
@View({ templateUrl: 'todo.html', directives: [NgFor] })
class TodoApp {
constructor(todoStore:Store, factory: TodoFactory, **@Inject(NgZone)** zone:NgZone) {
}
}
有人知道这是一个bug还是故意的吗?从我对Angular2的(有限的)使用来看,在Beta-0中没有必要使用“注入”装饰器,我只能说我在Angular4中遇到了这个问题。