Angular 2过滤器/搜索列表

前端之家收集整理的这篇文章主要介绍了Angular 2过滤器/搜索列表前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我正在寻找角度2的方法来做 this.

我只是有一个项目列表,我想做一个输入,工作是过滤列表.

<md-input placeholder="Item name..." [(ngModel)]="name"></md-input>

<div *ngFor="let item of items">
{{item.name}}
</div>

在Angular 2中这样做的实际方法是什么?这需要管道吗?

您必须通过将侦听器保持在输入事件上,根据每次输入的更改手动筛选结果.在进行手动过滤时,请确保您应该保留两个变量副本,其中一个是原始集合副本&第二个是filteredCollection副本.这种方式的优势可以节省您在更改检测周期中的不必要的过滤.您可能会看到更多代码,但这会更加性能友好.

标记 – HTML模板

<md-input #myInput placeholder="Item name..." [(ngModel)]="name" (input)="filterItem(myInput.value)"></md-input>

<div *ngFor="let item of filteredItems">
   {{item.name}}
</div>

assignCopy(){|
   this.filteredItems = Object.assign([],this.items);
}
filterItem(value){
   if(!value) this.assignCopy(); //when nothing has typed
   this.filteredItems = Object.assign([],this.items).filter(
      item => item.name.toLowerCase().indexOf(value.toLowerCase()) > -1
   )
}
this.assignCopy();//when you fetch collection from server.

猜你在找的Angularjs相关文章