异步管道用于对列表进行排序,每次出现鼠标或键盘事件时都会调用 - Angular4


<div *ngFor="let student of mystudentsFiltered  | orderBy : ['-presence', 'unreadcount']>

在上面的for模板中,我使用了管道orderBy,每当列表中的项目(学生(的状态发生变化时,它都会对列表进行排序。不知何故,每次出现鼠标或键盘事件时都会重复调用此管道。

我研究了更多,发现 Angular4 中的管道每次有变化检测时都会执行。Angular4 在更改检测机制中将以下内容视为:

1( 事件 - 点击、提交、滚动、

2( XHR - 从远程服务器获取数据

3( 计时器 - setTimeout((, setInterval((

如何限制在存在数据更改而不是默认更改检测事件时调用所述管道?

不应使用订单管道或筛选器管道。正如您自己所经历的那样,这对性能不利。您可以在此处阅读有关它的更多信息。您需要在服务中进行排序

最新更新