有没有办法以 Angular 动态创建同一组件的多个实例?我已经尝试使用 componentFacory,但没有成功。
最佳答案
private helloRef: ComponentRef<HelloComponent>;
private byeRef: ComponentRef<GoodbyeComponent>;
private helloCopyRef: ComponentRef<HelloComponent>;
@ViewChild('host', {read: ViewContainerRef}) theHost: ViewContainerRef;
constructor(private resolver: ComponentFactoryResolver, private injector: Injector) { }
ngOnInit(): void {
let factory = this.resolver.resolveComponentFactory(HelloComponent);
this.helloRef = factory.create(this.injector);
this.helloCopyRef = factory.create(this.injector);
factory = this.resolver.resolveComponentFactory(GoodbyeComponent);
this.byeRef = factory.create(this.injector);
}
show(){
this.theHost.detach();
this.theHost.insert(this.helloRef.hostView);
this.theHost.insert(this.byeRef.hostView);
this.theHost.insert(this.helloCopyRef.hostView);
}
检查此链接以获取演示:https://stackblitz.com/edit/angular-4aus6a
关于javascript - 动态创建同一组件的多个实例。,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50301956/