2017-02-09 4 views
0

Wie funktioniert die Änderungserkennung in Angular2, wenn changeDetection Strategy auf "ChangeDetectionStrategy.Default" gesetzt ist? Wird in der Vorlage nach allen Bindungen gesucht (nur durch Referenz) und das Rendern ausgelöst, wenn eine Referenz geändert wurde?Angular2 Standardänderungserkennung

+0

einen Blick auf diesen Artikel nehmen: https://blog.thoughtram.io/angular/2016/02/22/angular-2-change-detection-explained.html – Maxime

Antwort

0

Die default change detection strategy führt Änderungserkennung für alle Bindungen aus. Es wird nicht nur nach Referenzänderungen gesucht, sondern auch nach Eigenschaftsänderungen in Ihrem Modell.

Zum Beispiel den folgenden Code ausgeführt wird den Namen in der Vorlage ändern, nachdem die changeName() Methode ausgeführt wird, obwohl nur die name Eigenschaft ändert, nicht die person Referenz.

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

Es ist immer noch die Referenz ist die Überprüfung auf die Eigenschaft, die in der Vorlage gebunden wurde. Wie im obigen Beispiel wurde "person.name" in die Vorlage eingebunden. –