是否可以切换Angular HTML模板?

时间:2019-04-10 20:50:20

标签: angular

可以说我们有一个拥有mobile: boolean值的服务。根据它,我们为需要它的组件显示适当的TemplateUrl。

因此它类似于TemplateUrl: condition ? template_1 : template_2

我可以创建与require类似的东西,但不能为产品正确构建。当我转到该页面时,看到的是null而不是模板(仅产品)。

Angular版本7

1 个答案:

答案 0 :(得分:1)

@Component声明是通过AOT复杂方式静态处理的,并且templateUrl不能基于变量提供。

一种解决方法是将您的逻辑与呈现页面的方式分开。您可以在其中创建单独的组件的任何一部分在移动设备和台式机上以不同方式显示的UI。主要组件或共享基类或组件应包含所有逻辑。

<div>

  <p>Graph:</p>

  <graph-mobile *ngIf="mobile" [data]="data"></graph-mobile>

  <graph-desktop *ngIf="!mobile" [data]="data"></graph-desktop>

</div>