Angular2: Insert a dynamic component as child of a container in the DOM

前端 未结 6 1889
长发绾君心
长发绾君心 2020-11-29 03:44

Is there a way to insert dynamically a component as a child (not a sibling) of a DOM tag in Angular 2?

There are plenty of examples around there to

6条回答
  •  孤街浪徒
    2020-11-29 03:57

    My dirty way, just save the reference of dynamically created component (sibling) and move it using vanilla JS:

      constructor(
        private el: ElementRef,
        private viewContainerRef: ViewContainerRef,
        private componentFactoryResolver: ComponentFactoryResolver,
      ) {}
    
      ngOnInit() {
        const componentFactory = this.componentFactoryResolver.resolveComponentFactory(
          MyDynamicComponent,
        );
        const componentRef = this.viewContainerRef.createComponent(componentFactory);
        this.el.nativeElement.appendChild(componentRef.location.nativeElement);
      }
    

提交回复
热议问题