2017-06-20 49 views
0

我需要構建一個動態html頁面(內容&訂單是在運行時生成的)。 我將根據服務器響應(json)生成角度爲2的組件。Angular2部分動態組件方法

我看到我可以採取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>

dynamicItems是從服務器接收陣列。

使用此方法的含義是什麼? 這是不好的做法嗎?

回答

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> 
+0

你好,謝謝你的回答。你認爲這比使用ComponentFactoryResolver更好嗎? –

+0

是的...你可以隨它去 –