我有一个页面,其中包含诸如报告之类的图表,其中包含许多不同的自定义图表(不同的组件),并且可以将每个图表添加到收藏夹中,以便在仪表板页面上显示它们。 在“仪表板”页面上,我收到一个ID数组,需要呈现所有必需的组件。所以问题是怎么做比较好?
当前,我正在从报告模块中导入所有组件,并将它们添加到仪表板模块的entryComponents中,然后在* ng的帮助下根据ID数组显示它们。它看起来有点困难,并且需要大量其他代码。
对于解决此任务的任何更简单的建议,我将不胜感激。谢谢!
答案 0 :(得分:1)
我建议您简单地研究动态组件:
#include <iostream>
using namespace std;
int main()
{
int i = 5;
try {
if (i)
throw(i);
return 0;
}
catch (int &)
{
cout << "Int&";
}
catch (int)
{
cout << "Int";
}
}
。 类型-组件类型,这样,您将在ID和组件类型之间建立关联,并且只能存储ID。componentsMap: ([id: number]: Type)
之后,只需按id动态推送每个组件(您可以使用@ViewChild('ref') vcRef: ViewContainerRef;
来获取componentsMap
到
Type
ViewContainerRef
其中let componentFactory = this.componentFactoryResolver.resolveComponentFactory(component);
let componentRef = viewContainerRef.createComponent(componentFactory);
是保存的ID中的每种组件类型。
据我从评论中了解到,您已经做了类似的事情(问题是您说虽然使用* ngIf),所以希望至少可以对它有所帮助。