angular 2 downgrade component: Why the constructor params bring this error: (SystemJS) Can't resolve all parameters for (?)
angular 2 downgrade component: Why the constructor params bring this error: (SystemJS) Can't resolve all parameters for (?)
例如,参见这一行:
constructor(private elementRef: ElementRef, private zone: NgZone) {}
我需要从构造函数中删除参数,以便 降级 正常工作。否则我得到
(SystemJS) Can't resolve all parameters for (?)
所以我找到了一种删除元素引用的方法:
@ViewChild('myname') divElementRef:ElementRef;
但是我没有找到任何如何声明 NgZone 的解决方案,我总是得到它是未定义的,我可以用它做 "run"。如果有人知道我如何在构造函数之外创建 ngZone 实例,那将会有所帮助,或者可以解释我在降级 componenet 时遇到的错误。
构造函数参数是否应该是我在降级组件时声明的输入的一部分?
angular.module('myModule').directive('myLabel', downgradeComponent({component: MyLabelComponent, inputs: ['text'] }) as angular.IDirectiveFactory)
如果 MyLableComponent 的构造函数如下所示:
constructor(private elementRef: ElementRef) {}
我会收到错误信息。希望有人能解释为什么。删除构造函数参数时,一切都会正常工作。
DI必须由模块提供,会被下层模块继承。
我从来没有尝试过使用那样的降级,但提供 类 注入的方式似乎是一个问题,也许当你 运行组件在这边
试试 @Inject(NgZone) private zone: NgZone
和 @Inject(ElementRef) elementRef: ElementRef
编码愉快!
例如,参见这一行:
constructor(private elementRef: ElementRef, private zone: NgZone) {}
我需要从构造函数中删除参数,以便 降级 正常工作。否则我得到
(SystemJS) Can't resolve all parameters for (?)
所以我找到了一种删除元素引用的方法:
@ViewChild('myname') divElementRef:ElementRef;
但是我没有找到任何如何声明 NgZone 的解决方案,我总是得到它是未定义的,我可以用它做 "run"。如果有人知道我如何在构造函数之外创建 ngZone 实例,那将会有所帮助,或者可以解释我在降级 componenet 时遇到的错误。
构造函数参数是否应该是我在降级组件时声明的输入的一部分?
angular.module('myModule').directive('myLabel', downgradeComponent({component: MyLabelComponent, inputs: ['text'] }) as angular.IDirectiveFactory)
如果 MyLableComponent 的构造函数如下所示:
constructor(private elementRef: ElementRef) {}
我会收到错误信息。希望有人能解释为什么。删除构造函数参数时,一切都会正常工作。
DI必须由模块提供,会被下层模块继承。
我从来没有尝试过使用那样的降级,但提供 类 注入的方式似乎是一个问题,也许当你 运行组件在这边
试试 @Inject(NgZone) private zone: NgZone
和 @Inject(ElementRef) elementRef: ElementRef
编码愉快!