我需要构建一个动态的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;
dynamicItems是从服务器接收的数组。
使用这种方法有什么含义? 这是不好的做法吗?
答案 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>