Angular ngIf和ngFor with function每秒被调用很多次

时间:2017-08-07 14:08:17

标签: angular

我注意到使用ngIf或ngFor函数会每秒多次调用该函数。相反,使用字符串,数字或对象时,只有在更改检测开始时才会检查它。

我做错了吗?或者这是预期的行为?我想如果没有任何改变,就没有必要再次检查这个功能。

示例:

组件:

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

模板:

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

2 个答案:

答案 0 :(得分:0)

这是预期的行为。

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

答案 1 :(得分:0)

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

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