gpt4 book ai didi

Angular:使用带有多个模板变量的异步管道的 NgIf 的正确语法?

转载 作者:太空狗 更新时间:2023-10-29 18:21:55 25 4
gpt4 key购买 nike

使用 Angular,我们可以订阅一个 Observable 并将异步管道的结果分配给另一个变量,方法是:

    *ngIf="(data$ | async) as data; else loading"

我们可以检查多个条件:

    *ngIf="(data1$ | async) && (data2$ | async); else loading"

但是使用 Angular“as”关键字验证多个条件的正确语法是什么?

我试过了:

    *ngIf="((data1$ | async) as data1) && ((data2$ | async) as data2); else loading"

但是我有一个问题:

Parser Error: Unexpected token &&, expected identifier, keyword, or string

最佳答案

您可以使用类对象语法。

<ng-container *ngIf="{
data1: data1$ | async,
data2: data2$ | async
} as data">
<div *ngIf="data.data1 && data.data2; else loading">
<span>{{ data.data1 }}</span>
<span>{{ data.data2 }}</span>
</div>
</ng-container>
<ng-template #loading> ... </ng-template>

或者,更好的是,创建一个新的Observable,它结合了其他两个。

data$ = combineLatest(data1$, data2$).pipe(map(([v1, v2]) => v1 && v2));

比不过

<div *ngIf="data$ | async; else loading"> 
...
</div>
<ng-template #loading> ... </ng-template>

关于Angular:使用带有多个模板变量的异步管道的 NgIf 的正确语法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57592779/

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