Angular2,在我的 Angular2 中component.ts
,我获取了一个视频对象列表并存储在_videos:Video[]
在我的 html 中,我显示视频,
<tr *ngFor="#video of _videos">
现在我想在 html 中创建一个搜索输入字段来过滤视频。我正在尝试使用管道:
import {Pipe,PipeTransform} from 'angular2/core';
@Pipe({
name: 'textfilter'
})
export class TextFilterPipe implements PipeTransform {
transform(items: any[], args: any[]): any {
if(args[1].toString().length === 0)
return items;
return items.filter(item => item[args[0]].indexOf(args[1]) !== -1);
}
}
在ts
,
private _videoTitleFilter: string ='';
在html
,
<tr>
<th><input id="videoTitleFilter" placeholder="Filter">{{_videoTitleFilter}}</th>
<th></th>
<th></th>
<th></th>
</tr>
<tr *ngFor="#video of _videos |textfilter:'title':_videoTitleFilter">
绑定似乎不起作用。管道第一次工作。在这里使用管道是否正确?或者我应该创建一个新数组_videoList: Video[]
,用油门监听 keyup 事件来更改_videoList
并使用它*ngFor
,而不是_videos
?