【发布时间】:2018-01-16 03:34:22
【问题描述】:
以下面的模板为例。我使用as 语法创建用户的模板上下文,并希望将该上下文传递给userTmpl。据我所知,没有办法在 ngIf 条件使用的内容之外传递上下文。在这个例子中,是 showUser 属性。
<ng-container *ngIf="user$ | async as user">
<ng-container *ngIf="showUser; then userTmpl; else emptyTmpl"></ngcontainer>
</ng-container>
如何将user 模板输入变量传递给嵌套的templateRef?
Looking at the source,ngIf 指令看起来像是将上下文设置为ngIf 的条件。我不知道有一种方法可以基本上覆盖模板中使用的上下文变量
这样的事情会很理想,但没有办法做到这一点。
<ng-container *ngIf="showUser; then userTmpl; else emptyTmpl; context: user"></ngcontainer>
【问题讨论】:
-
我不太明白投票结束的原因。如果您对这个问题感到困惑,请您提供原因以便我澄清一下吗?
-
可能不是 if/else 的设计目的。您可以获得的关闭可能是将您的模板嵌套在 ngIf 中:plnkr.co/edit/SIu6HBOOB8ofe3exA7lG?p=preview 但这仍然是我不鼓励的。为什么不使用组件?
-
所以基本上你想在外部
ngIf中创建一个变量user并在内部ngIf条件中使用它? -
不适用于内部条件,模板
userTmpl和emptyTmpl的上下文 -
这也是我所看到的。您是否同意按照我在答案中概述的那样提出允许通过微语法传递上下文的功能有一些好处?
标签: angular