* ngIf und lokale Vorlagenvariablen
Kann jemand erklären, was hinter dem folgenden Verhalten steckt?
Sagen wir, wir haben eine Angular 2-Komponente, die ein @ h_model
Objekt. Dann haben wir in der Vorlage folgendes:
<form>
<input type="text" class="form-control" required [(ngModel)]="_model.firstName" ngControl="test2" #myInput >
<br>Class: {{myInput?.className}}
</form>
Das_model
ist von Anfang an verfügbar und wird in @ von Grund auf neu erstellngOnInit()
. Das Eingabefeld ist korrekt mit dem @ gefüll_model.firstName
Variable und die Zeile:
<br>Class: {{myInput?.className}}
rendert das Folgende korrekt in der Vorlage:
Class: form-control ng-untouched ng-pristine ng-invalid
.
So weit, ist es gut. Was mich verwirrt ist, dass in dem Moment, in dem ich @ hinzufü*ngIf
und ich ändere das Eingabefeld auf
<input *ngIf="_model" type="text" class="form-control" required [(ngModel)]="_model.firstName" ngControl="test2" #myInput >
Die Interpolation mit doppelten geschweiften Klammern funktioniert nicht mehr, da anscheinend die lokalemyInput
ie Variable @ wird auch dann nicht initialisiert, wenn sich ansonsten nichts im Code änder_model object
wird noch in @ erstelonNgInit()
und das Eingabefeld funktioniert immer noch einwandfrei. Das einzige, was das{{myInput?.className}}
renders ist
Class:
Kann jemand erklären, was los ist und / oder mich auf die richtige Dokumentation dazu hinweisen?
BEARBEITEN
Hier ist ein Plunker das zeigt das fragliche Problem.
Created Bug Reporthttps: //github.com/angular/angular/issues/808