2016-07-14 5 views
0

In Winkel 1 Tropfen, ING2 DOM Eigenschaft einmal initialisiert werden und Änderungsdetektions

<span ng-bind="::expression"></span> 

tun kann die innerHTML- der Spannweite zu setzen, ohne einen Watcher zu schaffen.

In Winkel 2 denke ich über ein paar Möglichkeiten, es zu tun, aber ich weiß nicht, ob der Änderungsdetektor nach der Initialisierung noch am Leben ist. Da ich das innereHTML nur einmal initialisieren möchte, wäre es schön, die Änderungserkennung nach dem ersten Durchlauf zu entfernen. Kann jemand helfen?

  1. <span [innerHTML]="expression"></span>
  2. <span innerHTML="{{expression}}"></span>
  3. <span>{{expression}}</span>

Und in Bezug auf 2. Ich in offiziellen Dokument gefunden, die Klammer weggelassen werden kann, wenn String-Initialisierung zu tun, aber ich weiß nicht, was passiert, wenn es kombiniert mit {{}} Interpolation. https://angular.io/docs/ts/latest/guide/template-syntax.html#!#one-time-string-initialization

Antwort

1

können Sie die Art und Weise ändern, wie eine Komponente funktioniert Änderungserkennung:

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

Weitere Informationen: http://blog.thoughtram.io/angular/2016/02/22/angular-2-change-detection-explained.html und http://victorsavkin.com/post/110170125256/change-detection-in-angular-2

+0

Vielen Dank für die Eingabe. Das Limit mit ChangeDetectionStrategy scheint zu sein, dass es für die gesamte Vorlage gilt. Würde es funktionieren, wenn ich nur einige Perperties "OnPush" haben möchte? – evenstar

+1

Machen Sie diese Eigenschaften zu einem Teil einer anderen "Richtlinie" oder "Komponente" –

Verwandte Themen