Angular 是否有订单/顺序管道应用于角度?

Angular 是否有订单/顺序管道应用于角度?,angular,filter,pipe,Angular,Filter,Pipe,我今天遇到了这个问题,我正在过滤活动的项目,并且只显示过滤后的前两个项目,这是我的代码 <div *ngFor="let l of listings | slice:0:2 | filterByStatus:'ACTIVE' "> <listing-item [listing]="l"></listing-item> </div> 它不工作,但当我更换管道时,它工作正常 <div *ngFor="let l of listings

我今天遇到了这个问题,我正在过滤活动的项目,并且只显示过滤后的前两个项目,这是我的代码

<div *ngFor="let l of listings | slice:0:2 | filterByStatus:'ACTIVE'  ">
  <listing-item [listing]="l"></listing-item>
</div>

它不工作,但当我更换管道时,它工作正常

<div *ngFor="let l of listings | filterByStatus:'ACTIVE' | slice:0:2   ">
  <listing-item [listing]="l"></listing-item>
</div>

这是一种预期行为还是我们可以按任何顺序使用它?

是。 在第一个示例中
首先应用
slice
,然后对
slice
的结果应用
filterByStatus

在第二个例子中,顺序是相反的

您还可以使用参数来影响评估顺序,如

(someobservable | async).items | slice:0:2 

管道是按从左到右的顺序执行的,因此顺序很重要


在您的示例中,只有第二个版本有意义。您希望先过滤,然后选择剩下的前两个,而不是相反。

在链接管道时,顺序确实很重要。因此,在第一种情况下,slice将首先运行,并将结果返回到下一个要处理的管道。

它们确实有一个订单,就像外壳上的管道一样