可以使用组件工厂来动态创建组件,然后将它添加到DOM中。以下是一个示例:
@Component({ selector: 'dynamic-component', template: '
@Component({ selector: 'app-root', template: '
' }) export class AppComponent { @ViewChild('container', { read: ViewContainerRef }) container: ViewContainerRef; private componentRef: ComponentRefconstructor(private resolver: ComponentFactoryResolver) {}
add() { // 创建组件 const factory = this.resolver.resolveComponentFactory(DynamicComponent); this.componentRef = this.container.createComponent(factory);
// 给组件传递参数
this.componentRef.instance.name = 'John';
} }
在模板中添加一个包含一个容器的 div 元素,并使用 ViewChild 获取它的引用。
创建组件工厂,然后在点击按钮时使用 createComponent 方法来创建组件,最后将其添加到容器中。
可以给创建的组件传递参数,例如上面代码中的 name 属性。
运行应用程序,点击按钮可以在容器中动态生成组件。