0

这是对问题的完全重写,因为它似乎写得不好。

我正在尝试使用这个包:

https://www.npmjs.com/package/ng-dynamic-component

用于带有 ngFor 循环变量的动态组件 @Input()。

该包的作者已经回答了一个似乎可以解决我的确切情况的问题。但是我没有让它像答案中建议的那样工作:

<div *ngFor="let tabComponent of tabComponents()">
  <ndc-dynamic 
     [ndcDynamicComponent]="tabComponent.component"
     [ndcDynamicInputs]="{ tabItem: tabComponent }"
  </ndc-dynamic>
</div>

TabContainerComponent 的 tabComponents -array 是这样的:

  public tabComponents: ITabComponent[] = [
    { name: 'SelectedObjects', icon: 'selected-objects', isSelected: true, component: SelectedObjectsComponent },
    { name: 'DummyComponent1', icon: 'pin', isSelected: false, component: DummyComponent },
    { name: 'DummyComponent2', icon: 'selected-objects', isSelected: false, component: Dummy2Component } 
  ]

并且所有动态选项卡组件都有:

@Input() tabItem: any;

根据文档,我应该添加 ndcDynamicInputs:inputs 如下所示(而不是在 html 中内联:

<div *ngFor="let tabComponent of tabComponents()">
  <ndc-dynamic 
     [ndcDynamicComponent]="tabComponent.component"
     [ndcDynamicInputs]="inputs"
  </ndc-dynamic>
</div>

问题是如何在 ts 类中定义输入数组:

inputs = {
  // how to assign tabComponent?
  tabItem: ??
}

那么如何将How to assign value of *ngFor 循环变量的值分配给角度动态组件的@Input 属性呢?

4

1 回答 1

1

而不是 [ndcDynamicInputs]="inputs",您是否尝试过 [ndcDynamicInputs]="{ tabItem: tabComponent }" ?

于 2019-08-29T09:44:33.717 回答