2
我需要在運行時動態更改模板URL,以便我可以更改在組件中呈現的視圖。有沒有解決方案來實現這一目標? 例如,我的組件想要網格和列表視圖,但我不想在同一個模板中創建兩個視圖,而是在單獨的模板文件中維護視圖。那麼,如何在運行時更改組件的視圖(即,用新模板替換當前模板)。提前致謝。如何在運行時動態更改templateUrl值2
我需要在運行時動態更改模板URL,以便我可以更改在組件中呈現的視圖。有沒有解決方案來實現這一目標? 例如,我的組件想要網格和列表視圖,但我不想在同一個模板中創建兩個視圖,而是在單獨的模板文件中維護視圖。那麼,如何在運行時更改組件的視圖(即,用新模板替換當前模板)。提前致謝。如何在運行時動態更改templateUrl值2
Angular不支持在運行時更改模板URL,因爲在編譯時模板中的Angular特定結構將被轉換爲JavaScript。
你可以做的是
<ng-container *ngIf="isFoo">
template1
</ng-container>
<ng-container *ngIf="!isFoo">
template2
</ng-container>
或者你可以在運行時動態地創建組件,你需要包括動態運行到部署。目前這完全阻止了AoT(有人提到一些黑客可以在某處合作,但我還沒有嘗試過)。 通過這種方式,您可以在組件創建時定義要使用的模板。
剛剛幾分鐘前問過非常類似的問題http://stackoverflow.com/questions/43229609/angular-cli-use-different-templates-depending-on-the-environment –
嗯,你爲什麼要他們在2個不同的模板?爲什麼不用* ngIf製作2個div並處理組件中的其餘部分? –
@PedroLopes Ya正確...但這是要求...因此,用戶可以在選擇器標記中輸入模板url作爲輸入.. – Manush