Angular2部分动态组件方法

时间:2017-06-20 08:08:25

标签: angular angular-components dynamic-html angular-factory

我需要构建一个动态的html页面(内容和顺序是在运行时生成的)。 我将根据服务器响应(json)生成角度2组件。

我看到我可以采用ComponentFactoryResolver方法。它看起来很脏而且很小。

然后我在考虑以下想法:

dynamic.component.html:



<div *ngFor="let item of dynamicItems">
  <div [ngSwitch]="item.type">
    <template [ngSwitchCase]="component1">
       <component1 [data]="item.data"></component1>
    </template>
    <template [ngSwitchCase]="component2">
       <component2 [data]="item.data"></component2>
    </template>
    <template [ngSwitchCase]="component3">
       <component3 [data]="item.data"></component3>
    </template>¯
    <template [ngSwitchCase]="component4">
       <component4 [data]="item.data"></component4>
    </template>
  </div>
</div>
&#13;
&#13;
&#13;

dynamicItems是从服务器接收的数组。

使用这种方法有什么含义? 这是不好的做法吗?

1 个答案:

答案 0 :(得分:0)

感觉这很好

<div *ngFor="let item of dynamicItems">
 <component1 *ngIf="item.type=='component1'" [data]="item.data"></component1>
 <component2 *ngIf="item.type=='component2'" [data]="item.data"></component2>
 <component3 *ngIf="item.type=='component3'" [data]="item.data"></component3>
 <component4 *ngIf="item.type=='component4'" [data]="item.data"></component4>
</div>