【发布时间】:2019-09-01 10:03:06
【问题描述】:
假设我们有一个服务持有mobile: boolean 值。根据它,我们为需要它的组件显示适当的 TemplateUrl。
所以它会像TemplateUrl: condition ? template_1 : template_2
我可以使用 require 创建类似的东西,但它不会为 prod 正确构建。当我使用它进入页面时,我看到 null 而不是模板(仅产品)。
Angular 版本 7
【问题讨论】:
-
一般来说,如果你愿意,可以使用标准的 html/css 设置或 angular + flexlayout 来解决。您遇到问题的原因很可能是因为产品中的 AOT 而不是开发的 JIT。此外,我发现了一个类似的问题:stackoverflow.com/questions/49974776/… 这也告诉您不可能,因为您打算这样做
-
我不认为你可以有条件
templateUrl。假设mobile在运行时是已知的,您可以将两个模板放在同一个模板文件中,并根据条件使用ngIf ... else显示适当的模板。 -
为什么不把两个变体放在一个模板中并使用
*ngIf? -
是的,我看到了这个链接,是的,它是关于产品中的 AOT。自 Angular 5 以来已经有一段时间了,所以我有点希望这个主题有所改变。是的,我可以使用 ngIf 或创建抽象类,以及移动/桌面的组件从它继承以将逻辑保存在一个地方 + 为移动设备制作单独的路由,但这是非常丑陋的解决方案。
标签: angular