【发布时间】:2019-04-17 15:30:12
【问题描述】:
我遇到了 ng-dynamic-component 包,同时与 Angular 的 ngComponentOutlet 无法实现的 @Inputs 和 @Outputs 交互作斗争。
在我的应用程序中,我想在*ngFor 中动态实例化不同类型的选项卡组件。
阅读ng-dynamic-component 文档、与@Inputs 和@Outputs 交互并不是在HTML 模板中,而是在组件实现本身中。
考虑到我需要遍历所有选项卡这一事实,每个选项卡需要获取不同的@Input,并根据其实例向@Outputs 订阅不同的数据,例如,
<ndc-dynamic *ngFor="let tab of tabs"
[ndcDynamicComponent]="component"
[ndcDynamicInputs]="inputs" <!-- this needs to be different for each tab-->
[ndcDynamicOutputs]="outputs"> <!-- this needs to be different for each tab-->
</ndc-dynamic>
除了用inputs和outputs成员破坏我的标签对象,或者创建一个特殊的接口,比如:
interface DynamicTab {
tab: Tab,
inputs: any,
outputs: any
}
知道如何实现这种行为吗?有什么方法可以充分利用*ngFor 并使用当前选项卡操作基本的inputs?
我可以在我的组件上创建两个方法来计算所需的输入和输出,但是所有这些选项似乎都需要太多的工作来操作我在运行 *ngFor 时已经拥有的当前 tab 数据
提前感谢您的任何见解!
【问题讨论】:
标签: javascript angular angular-dynamic-components ng-component-outlet