【发布时间】:2017-08-21 10:55:36
【问题描述】:
我使用new Angular local variable assignment feature 来引用ngIf 下子元素中的异步管道的结果:
<nav *ngIf="dataService.count$ | async as count">
<div *ngIf="count > 1">
There's more than one! It's actually {{count}}.
</div>
</nav>
如您所见,我在层次结构中有一个额外的div,只是为了获取异步管道的结果,然后对其进行比较。我觉得我应该能够在一个表达式中做到这一点,但我找不到关于新功能的足够文档。我尝试了各种使用括号的方法,使用 | async; let count 等,但我不知道如何在一行中完成这两项操作。
(指向ngIf 中有关局部变量声明语法的任何文档的指针也将不胜感激——我从未听说过foo$ | async as foo,直到我在这里看到它。)
【问题讨论】:
-
您可以使用
ng-container,这仍然会在代码中为您提供一个额外的“容器”,但在渲染视图时不会。 -
这个问题应该有 angular 4 标签。
-
我这里的回答并不是你问题的真正答案,而是非常相关的,同样的事情可以应用:stackoverflow.com/a/44696109/2521893
-
它在 Angular 文档中:angular.io/api/common/NgIf 并且在这里提出了同样的问题:github.com/angular/angular/issues/16173
-
感谢 Vega,我确实阅读了这些文档,虽然他们提到了
async as,但他们并没有提及foo$ | async; let foo,我相信这也有效。根据您的 GH 问题链接,看起来这还没有速记,我可能会遇到 2 个元素。
标签: angular