2017-02-09 109 views
0

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

+0

看看这篇文章:https://blog.thoughtram.io/angular/2016/02/22/angular-2-change-detection-explained.html – Maxime

回答

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'; 
    } 
} 
+0

它仍然是检查参考已在模板中绑定的属性。如上例中“person.name”已被绑定在模板中。 –