Angular,从动态创建的Component获取ViewChild / ViewContainerRef

前端之家收集整理的这篇文章主要介绍了Angular,从动态创建的Component获取ViewChild / ViewContainerRef前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
有没有办法从动态创建的组件中获取ViewContainerRef?
我的动态创建组件里面有一个ngContent元素,我想在动态创建后填充它.

export class Example {

  @ViewChild('content',{ read: ViewContainerRef }) //normal way
  content: ViewContainerRef;

...

  ngAfterViewInit(){
    let Box1=this.content.createComponent(this.BoxFactory);
    Box1.instance.title="Dynamic (1)";
    // HERE: the Box1 has a ng-content area which i want to fill.
  }

}

我想一些解决ViewChild而不是使用装饰器的手动方法.一些想法?

非常感谢.

解决方法

我不确定如何动态添加viewchild.但是,如果动态ViewContainerRef是您想要的,您可以尝试使用此解决方案:

在html文件中创建:

<div id="test"></div>

在您的组件中创建:

let nodeElement = document.getElementById("test");
      let compFactory = this.componentFactoryResolver.resolveComponentFactory(ChildComponent);
      let component = compFactory.create(this.viewContainerRef.injector,null,nodeElement);

猜你在找的Angularjs相关文章