2017-07-11 56 views
1

我碰到這個問題今天來,我篩選具有活性和顯示只有第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> 

這是一個預期的行爲,或者我們可以以任何順序使用它?

+1

他們有一個訂單,它就像殼上的管道材料 –

回答

2

是的。 在第一示例
slice exapmle順序的其他方式在第一和filterByStatus應用於slice
結果在第二。

您還可以使用括號來影響評價爲了像

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

管道在左到右的順序執行,這樣的順序是非常重要的。

在你的例子中,只有第二個版本是合理的。你首先要過濾,然後選擇剩下的前兩個,而不是相反。

0

鏈接管道時,順序確實很重要。所以在第一種情況下,slice將首先運行,並將結果返回到下一個要處理的管道。