【问题标题】:Is there a order/sequence pipes getting applied with angular?是否有一个顺序/顺序管道被应用到角度?
【发布时间】:2017-12-15 06:43:33
【问题描述】:

我今天遇到了这个问题,我正在过滤处于活动状态的项目,过滤后只显示前 2 个项目,这是我的代码

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

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

【问题讨论】:

  • 他们确实有订单,就像在外壳上管道一样

标签: angular filter pipe


【解决方案1】:

是的。 在第一个示例中
首先应用slice,然后将filterByStatus 应用于slice 的结果,
在第二个例子中,顺序是相反的。

您还可以使用括号来影响评估顺序,例如

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

【讨论】:

    【解决方案2】:

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

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

    【讨论】:

      【解决方案3】:

      在链接管道时,顺序确实很重要。所以在第一种情况下,切片将首先运行并将结果返回到下一个管道进行处理。

      【讨论】:

        猜你喜欢
        • 2016-07-26
        • 2019-03-18
        • 2020-06-20
        • 2021-06-05
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2019-01-14
        • 1970-01-01
        相关资源
        最近更新 更多