gpt4 book ai didi

angular - NgIf 和零 : Why is the template not being rendered?

转载 作者:行者123 更新时间:2023-12-05 08:16:12 24 4
gpt4 key购买 nike

我有以下 Observable on 和 Angular 组件:

count$: Observable<number>;

this.count$ = this.getCount();

通过使用以下我得到值 0(零);

this.count$.subscribe(x => console.log(x));

在我的模板上:

<a routerLink="/dash" *ngIf="(count$ | async)">
<ng-container *ngIf="count$ | async as count">
Count: {{count}}
</ng-container>
</a>

如果 count$ 为 1,我得到 Count: 1 但如果 count$ 为 0,则内容 Count: 0 甚至没有被渲染。

知道为什么吗?

最佳答案

万一有人在寻找解决方法,这很愚蠢但它有效:

   <ng-container *ngIf="{ len: count$ | async } as ctx">
<ng-container *ngIf="ctx.len !== null"
{{ ctx.len }}
</ng-container>
</ng-container>

解释:

  1. 在名为 ctx 的对象中将 count 捕获为 len
  2. 因为 *ngIf 现在正在查看一个对象,而不是值,它将评估为 truthy 并呈现 ng-container
  3. 现在我们用 ctx.len !== null
  4. 检查我们是否得到了一个实际值
  5. 我们可以使用 ctx.len 访问该值

关于angular - NgIf 和零 : Why is the template not being rendered?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56977363/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com