2017-07-25 50 views
0

如何寫一個過濾器,它只返回列表的最後一個元素/我如何編寫一個只返回最後一個元素的過濾器。最後一個元素的角度過濾器

背景: 我有一個項目列表,最後一項應該是可編輯的。因此,我需要這個過濾器來獲得它。

+2

看來日在此使用Angular的預發佈(Alpha)版本。 Angular現在在版本4.3.1上。它從*預發佈到最終發佈*顯着改變了*。我強烈建議升級至少發佈版本的Angular。否則,您發現/嘗試使用的任何代碼都不適用於您的應用程序。 (例如,alpha 44沒有Angular模塊,現在它是Angular的一個重要特性。) – DeborahK

+0

@DebrorahK代碼只是我在這個問題上發現的,我正在使用最新版本:) – Stefan

+0

好聽的。請注意,ngFor語法也在此代碼中發生了很大的變化。因此,從頭開始並不嘗試使用此代碼可能是有意義的。你可以發佈什麼*你的*過濾器代碼看起來像迄今爲止? – DeborahK

回答

1

你可以使用一個Pipe過濾數組

@Pipe({name: 'lastItem'}) 
export class LastItemPipe implements PipeTransform { 
    transform(items: any[], exclusive: boolean): any { 
    if (exclusive) { return items.slice(0, items.length - 1); } 
    return [items[items.length - 1]]; 
    } 
} 

模板

<h2>list without</h2>  
<div *ngFor="let item of items | lastItem:true">{{item}}</div>  
<h2>list with</h2>  
<div *ngFor="let item of items | lastItem:false">{{item}}</div> 

Live plunker example