Inheritance 以编程方式插入不同的Angular2组件

Inheritance 以编程方式插入不同的Angular2组件,inheritance,dynamic,components,angular,composition,Inheritance,Dynamic,Components,Angular,Composition,我希望通过编程从JSON文件生成由多个不同组件组成的报告,如: { components: [UserStatsComponent, ActivityChartComponent, NetworkGraphComponent] } 我发现: 但是我的用例不同,我需要表示不同类型的组件,所以我不能在模板中使用ngFor,因为不是每个组件都有相同的指令 我不熟悉Angular2,所以我真的不知道如何处理这个问题:首先,我考虑了组件继承,但在扩展组件类时,Angular2注释似乎没有被继承。

我希望通过编程从JSON文件生成由多个不同组件组成的报告,如:

{
    components: [UserStatsComponent, ActivityChartComponent, NetworkGraphComponent]
}
我发现: 但是我的用例不同,我需要表示不同类型的组件,所以我不能在模板中使用ngFor,因为不是每个组件都有相同的指令

我不熟悉Angular2,所以我真的不知道如何处理这个问题:首先,我考虑了组件继承,但在扩展组件类时,Angular2注释似乎没有被继承。我也不知道如何用合成来解决这个问题

听说过一些关于内容标签的事情,但不知道它是否与这个用例相关


tldr;如何从阵列中动态插入不同的组件?

要动态插入组件,请使用

@组件({
选择器:'子组件',
模板:“孩子”
})
类子组件{
}
@组成部分({
选择器:“我的应用程序”,
模板:'Parent()'
})
类MyApp{
构造函数(dcl:DynamicComponentLoader,注入器:注入器){
dcl.loadAsRoot(子组件,#子组件,注入器);
}
}

su pregunta no es clara。。。这会造成混乱。请你把它做得更好好吗;如何从数组中动态插入不同的组件?是否希望通过json对象循环并遇到动态组件?json对象将在我的主ReportComponent中以某种方式进行解析(无论我如何获得它),我的意思是,我不知道我将事先插入哪些子组件。如果你说你不知道你将插入哪些子组件,这意味着你说你不知道如何为每个组件定义@component decorator。所以,我认为这个答案看起来并不直接和简单。但希望您能看看angular2的
DynamicComponentLoader
。但希望其他人现在或以后能够回答。
@Component({
  selector: 'child-component',
  template: 'Child'
})
class ChildComponent {
}
@Component({
  selector: 'my-app',
  template: 'Parent (<child id="child"></child>)'
})
class MyApp {
  constructor(dcl: DynamicComponentLoader, injector: Injector) {
    dcl.loadAsRoot(ChildComponent, '#child', injector);
  }
}