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将首先运行,并将结果返回到下一个要处理的管道。它们确实有一个订单,就像外壳上的管道一样