当我在HTML页面上有一个我的指令实例时,一切都很好。但是当我在同一个页面上不止一次使用同一个指令时,我会在创建指令使用的组件模板时出错。
似乎这行代码在创建工厂时失败:
private myDirective: ComponentRef<MyComponentContainer>;
...
const factory = this.resolver.resolveComponentFactory(MyComponentContainer); // fails
this.myDirective= this.viewContainerRef.createComponent(factory); // not run at all
MyComponentContainr
只是一个包含简单模板的组件。
有什么问题?
错误是当我尝试做类似的事情时:
this.myDirective.instance.top = 10;
// EXCEPTION: Error in :0:0 caused by: Cannot read property 'instance' of undefined
我认为问题是当我在指令中使用服务时:
this.MyService.dataUpdated.subscribe
(
(data: Dimension) => {
this.callFunc();
}
)