ng用于使用trackby按文本筛选



我正在开发一个angular 4应用程序,我有一个大的对象数组(比如200行(所以我放了一个搜索输入,ngFor与一个管道相关,该管道根据输入中的内容按名称进行过滤。像这样的

<input type="text" [(ngModel)]="searchtext" placeholder="Search">
<div *ngFor="let m of (devices | filterEquipments : searchtext)">{{ m.name }}</div>

问题是我什么时候开始打字。显然,在html中呈现内容时,过滤非常慢。因此,在研究解决方案时,我可以通过使用";trackBy";在";ngFor";可以优化结果。问题是我不知道如何正确实现它,也不知道这是否能帮助我更快地过滤元素。

如何实现快速过滤器?

也许可以尝试添加一些延迟

<input type="text" [value]="item.task_name"(keyup)="term$.next($event.target.value)">
import ......
import {Subject} from 'rxjs/Subject';
import 'rxjs/add/operator/debounceTime';
import 'rxjs/add/operator/distinctUntilChanged';
import 'rxjs/add/operator/switchMap';

@组件{(。。。)}导出类YourComponent{

term$ = new Subject<string>();
constructor() {
this.term$
.debounceTime(1000)
.distinctUntilChanged()
.switchMap(term => /*do something*/);
}
}

最新更新