在同一页面上多次使用指令时,使用resolver.resolveComponentFactory创建工厂失败

时间:2017-04-26 14:40:00

标签: angular angular2-directives angular2-components

当我在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();
        }
      )

0 个答案:

没有答案