angular动态添加自定义组件

1、需要定义一个标签标识为组件容器 #reportContainer

      <div id="report" #report>
        <div #reportContainer id="item">
        </div>
      </div>
2、导入ViewContainerRef ,并导入需要动态插入的组件XXComponent
import { Component,  ComponentFactoryResolver,  OnInit, ViewChild, ViewContainerRef } from '@angular/core';
3、在TS文件中使用 @ViewChild并将其类型定义为ViewContainerRef
  @ViewChild('reportContainer', { read: ViewContainerRef })
  reportContainer: ViewContainerRef|undefined;
4、在构造函数中注入ComponentFactoryResolver
  constructor(public resolver:ComponentFactoryResolver) {   }
5、
   let com = this.resolver.resolveComponentFactory(XXComponent);
      this.reportContainer?.createComponent(com);
 
posted @ 2021-11-03 21:41  影随风舞  阅读(576)  评论(0)    收藏  举报