2017-02-09 7 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"がテンプレートにバインドされています。 –

関連する問題