【问题标题】:Angular ngIf and ngFor with function gets called many times per secondAngular ngIf 和 ngFor 函数每秒被调用多次
【发布时间】:2017-11-30 18:19:08
【问题描述】:

我注意到将 ngIf 或 ngFor 与函数一起使用会每秒多次调用该函数。相比之下,使用字符串、数字或对象,只有在更改检测启动时才会检查它。

我做错了吗?或者这是预期的行为?如果某处没有任何变化,我会说没有必要再次检查该功能。

例子:

组件:

myFunction() {
    console.log('I was checked');
    return true;
}

模板:

<div *ngIf="myFunction()">hello there!</div>

【问题讨论】:

标签: angular


【解决方案1】:

这是预期行为。

Angular 每毫秒执行大量检查以检测是否发生了变化。

【讨论】:

    【解决方案2】:

    您可以使用ChangeDetectionStrategy 来避免这种情况。我不太确定。

    @Component({
      // ...
      changeDetection: ChangeDetectionStrategy.OnPush
    })
    export class MyComponent {
      // ...
    }
    

    【讨论】:

      猜你喜欢
      • 2021-12-22
      • 1970-01-01
      • 2016-09-17
      • 2017-02-12
      • 2011-11-06
      • 2011-03-09
      • 1970-01-01
      • 1970-01-01
      • 2019-04-08
      相关资源
      最近更新 更多