如何在角度2的运行时动态更改templateUrl值

时间:2017-04-05 11:28:19

标签: angular angular2-template angular-routing

我需要在运行时动态更改模板URL,以便我可以更改在组件中呈现的视图。有没有解决方案来实现这一目标? 例如,我的Component需要网格和列表视图,但我不想在同一模板中创建两个视图,而是将视图保存在单独的模板文件中。那么,如何在运行时更改组件的视图。(即)用新模板替换当前模板。在此先感谢。

1 个答案:

答案 0 :(得分:1)

Angular不支持在运行时更改模板URL,因为在编译时,模板中的Angular特定构造将转换为JavaScript。

你能做的是

<ng-container *ngIf="isFoo">
 template1
</ng-container>
<ng-container *ngIf="!isFoo">
 template2
</ng-container>

或者,您可以在运行时动态创建组件,因为您需要将动态运行时包含在deployable中。目前这完全阻止了AoT(有一些黑客被提到让它在某个地方一起工作,但我还没有尝试过)。 这样,您可以在组件创建时定义要使用的模板。