0

我需要弄清楚如何爲一個組件提供不同的視圖(html + css)。很多人都說最好每個視圖都有多個組件,然後使用一個服務進行交互,但我的情況如下: 我有一個基本上是佈局的視圖的控制器。假設我的佈局頂部有3個窗格,底部有一個窗格。現在我有按鈕在我看來將佈局更改爲頂部的兩個窗格和底部的兩個窗格。所以基本上我的數據不會改變。它只是在HTML和CSS的變化。 如果第一個佈局填充了一些數據,我不想更改它或在更改佈局時重新初始化它,因爲更改只是佈局上的更改而不是數據。Angularjs一個組件多視圖(Html + CSS)

我很難搞清楚我在angular2中如何實現這一點。有任何想法嗎?

回答

2

,所以你要添加HTML和CSS或者只是改變實際的模板?

如果你只是想改變實際的HTML,我個人建議你使用狀態,而不是不同的意見。並根據國家移動HTML周圍。我自己也有同樣的問題,我通過重新思考佈局解決了這個問題,並最終找到了更簡單的佈局結構。

希望這會有所幫助。 享受編碼。

0

你可以在一個模板兩個視圖,並通過設置在它們之間切換平坦:

<div *ngIf="firstLayout"> 
    <!-- first layout --> 
</div> 
<div *ngIf="!firstLayout"> 
    <!-- first layout --> 
</div> 
+0

我也考慮過這個。問題是這是最高效的方式嗎?我想也許有一種方法(模塊化),我可以根據我的輸入佈局加載特定的視圖。否則,由於這些視圖中的大多數元素都是相同的,因此這將是一個大量冗餘的大文件。 – user3205675

+0

您也可以使用DynamicComponentLoader或路由器,但性能主要取決於當前用例。如果一個客戶端通常只使用一個選項,則路由器支持延遲加載組件。如果用戶在一次會話中經常切換'* ngIf'可能會更有效。 –