Angular2默认更改检测

时间:2017-02-09 08:53:03

标签: angular

当changeDetection策略设置为“ChangeDetectionStrategy.Default”时,变更检测如何在Angular2中工作? 它是否检查模板中的所有绑定(仅通过引用),如果任何引用已更改,则触发重新呈现?

1 个答案:

答案 0 :(得分:0)

default change detection strategy将对所有绑定运行更改检测。它不仅会查找参考更改,还会查找模型中的属性更改。

例如,运行以下代码将在运行changeName()方法后更改模板中的名称,即使只有name属性发生更改,而不是person引用。

import {Component} from '@angular/core';

@Component({
  selector: 'my-app',
  template: `
    <h1>Hello {{person.name}}</h1>
    <button (click)="changeName()">Change name!</button>
  `
})
export class AppComponent { 
  person = { name: 'Foo' };

  changeName() {
    this.person.name = 'Bar';
  } 
}