* ngIf y variables de plantilla local
¿Podría alguien explicarme qué hay detrás del siguiente comportamiento?
Digamos que tenemos un componente Angular 2 que tiene un_model
objeto. Luego en la plantilla tenemos esto:
<form>
<input type="text" class="form-control" required [(ngModel)]="_model.firstName" ngControl="test2" #myInput >
<br>Class: {{myInput?.className}}
</form>
los_model
está disponible desde el principio siendo creado desde cero enngOnInit()
. El campo de entrada se rellena correctamente con el_model.firstName
variable y la línea:
<br>Class: {{myInput?.className}}
representa correctamente lo siguiente en la plantilla:
Class: form-control ng-untouched ng-pristine ng-invalid
.
Hasta aquí todo bien. Lo que me confunde es que en el momento en que agrego*ngIf
y cambio el campo de entrada a
<input *ngIf="_model" type="text" class="form-control" required [(ngModel)]="_model.firstName" ngControl="test2" #myInput >
La interpolación de llaves dobles deja de funcionar porque aparentemente el localmyInput
la variable no se inicializa incluso cuando nada más en el código cambia, el_model object
todavía se crea enonNgInit()
y el campo de entrada sigue funcionando correctamente. Lo único que el{{myInput?.className}}
representa es
Class:
¿Alguien puede explicar lo que está sucediendo y / o indicarme la documentación correcta para esto?
EDITAR:
Aquí está unSaqueador eso muestra el problema en cuestión.
Informe de error creadohttps://github.com/angular/angular/issues/8087