加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

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

发布时间:2020-12-17 18:06:13 所属栏目:安全 来源:网络整理
导读:有没有办法从动态创建的组件中获取ViewContainerRef? 我的动态创建组件里面有一个ngContent元素,我想在动态创建后填充它. export class Example { @ViewChild('content',{ read: ViewContainerRef }) //normal way content: ViewContainerRef;... ngAfterVi
有没有办法从动态创建的组件中获取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);

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读