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

时间:2019-08-21 13:27:01

标签: angular

使用Angular,我们可以订阅Observable,并通过执行以下操作将异步管道的结果分配给另一个变量:

db_table = 'client_files'

我们可以检查多个条件:

db_table : 'client_files'

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

我尝试过:

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

但是我有一个问题:

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

2 个答案:

答案 0 :(得分:3)

您可以使用类似于对象的语法。

<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>

答案 1 :(得分:0)

您可以尝试以下方法:

Date Table2 = CALENDAR(DATE(YEAR(TODAY()-365*4);4;1);TODAY())