如何在仪表板页面上显示收藏夹(不同的组件)?角度5

时间:2019-02-03 13:44:45

标签: angular

我有一个页面,其中包含诸如报告之类的图表,其中包含许多不同的自定义图表(不同的组件),并且可以将每个图表添加到收藏夹中,以便在仪表板页面上显示它们。 在“仪表板”页面上,我收到一个ID数组,需要呈现所有必需的组件。所以问题是怎么做比较好?

当前,我正在从报告模块中导入所有组件,并将它们添加到仪表板模块的entryComponents中,然后在* ng的帮助下根据ID数组显示它们。它看起来有点困难,并且需要大量其他代码。

对于解决此任务的任何更简单的建议,我将不胜感激。谢谢!

1 个答案:

答案 0 :(得分:1)

我建议您简单地研究动态组件

  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。
  2. 创建一个占位符,并使用componentsMap: ([id: number]: Type)
  3. 对此占位符进行引用
  4. 之后,只需按id动态推送每个组件(您可以使用@ViewChild('ref') vcRef: ViewContainerRef;来获取componentsMap

    之类的Type
    ViewContainerRef

    其中let componentFactory = this.componentFactoryResolver.resolveComponentFactory(component); let componentRef = viewContainerRef.createComponent(componentFactory); 是保存的ID中的每种组件类型。


据我从评论中了解到,您已经做了类似的事情(问题是您说虽然使用* ngIf),所以希望至少可以对它有所帮助。