首页 > 解决方案 > 角度组件工厂,防止 ngSwitch/if

问题描述

我有这段丑陋的代码:

<ng-container [ngSwitch]="filter.kind">
    <p-select *ngSwitchCase="filterType.SelectboxFilter"  [settings]="filter" > </p-select>
    <p-autocomplete *ngSwitchCase="filterType.AutocompleteFilter" [settings]="filter" >  </p-autocomplete>
    <p-dropdown  *ngSwitchCase="filterType.DropdownFilter"  [settings]="filter"> </p-dropdown>
    <p-special-autocomplete-filter *ngSwitchCase="filterType.SpecialFilter"  [settings]="filter">  </p-special-autocomplete-filter>
    <p-quantity-filter *ngSwitchCase="filterType.QuantityFilter"  [settings]="filter">  </p-quantity-filter>
</ng-container>

例如,我搜索另一种方法来做到这一点 - 每个过滤器都将在这里保存组件。

有可能的?也许另一种方式?

标签: angular

解决方案


您可以改用 dynamic-component-loader -"ComponentFactoryResolver" 角度文档- 但实现起来并不容易


推荐阅读