我需要多次加载一个动态组件,并根据某个值动态传递数据,以便它可以与运行时数据一起加载。
我尝试了以下示例 https://dzone.com/articles/how-to-dynamically-create-a-component-in-angular
作为示例,我们有一个具有“ message”属性的messageComponent和 在hostComponent中,我们在html文件中添加了一个模板,例如
<div style="text-align:center">
<h1>
Welcome to {{ title }}!
</h1>
<template #messagecontainer>
</template>
</div>
因此在这里,模板组件将替换我们的messageComponent。
我需要类似的东西,我们可以多次迭代此模板并通过 messageComponent中动态地设置不同的“ message”值。
答案 0 :(得分:0)
这是我的方法:
<ng-container #messageContainer></ng-container>
private createComponent (compClass) {
const compFactory = this.cfr.resolveComponentFactory(compClass);
return this.messageContainer.createComponent(compFactory);;
}
private loadNewComponentList () {
this.messages.forEach((msg, idx) => {
this.destroyCompFromList(this.componentList[idx]);
const comp = this.createComponent(componentMap[this._crtComp]);
(comp.instance as any).message = msg;
comp.changeDetectorRef.detectChanges();
this.componentList[idx] = comp;
});
}