代码之家  ›  专栏  ›  技术社区  ›  Pranav Aggarwal

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

  •  1
  • Pranav Aggarwal  · 技术社区  · 7 年前
    <div *ngFor="let student of mystudentsFiltered  | orderBy : ['-presence', 'unreadcount']>
    

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

    我做了更多的研究发现, 在Angular4中是 执行 每次有 . Angular4在变化检测机制中考虑以下因素:

    1) 事件-单击、提交、滚动、,

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

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

    当有数据更改但没有默认更改检测事件时,如何限制调用所述管道?

    1 回复  |  直到 7 年前
        1
  •  1
  •   Robin Dijkhof    7 年前

    您不应该使用订单管道或过滤管道。正如你自己所经历的那样,这对表现不利。你可以了解更多 here . 您需要在服务中进行订购