Aquí hay un ejemplo de plantilla:
<input type="number" class="form-control" [(ngModel)]="overRideRate" formControlName="OverRideRate">
<input type="number" class="form-control" [ngModel]="overRideRate" formControlName="OverRideRate">
Aquí ambos hacen lo mismo. ¿Cuál se prefiere y por qué?
angular
angular-ngmodel
Pequeño dragón
fuente
fuente
[ngModel]
- es solo propiedad vinculante, no bidireccional. Por lo tanto, ingresar un nuevo valor no se actualizaráoverRideRate
.[(ngModel)]
, de dos vías de enlace de datos en AngularRespuestas:
[(ngModel)]="overRideRate"
es la forma corta de[ngModel]="overRideRate" (ngModelChange)="overRideRate = $event"
[ngModel]="overRideRate"
es uniroverRideRate
a lainput.value
(ngModelChange)="overRideRate = $event"
es actualizaroverRideRate
con el valor deinput.value
cuándochange
se emitió el evento.Juntos son lo que Angular2 proporciona para el enlace bidireccional.
fuente
[ngModel]="currentHero.name"
es la sintaxis para el enlace unidireccional, mientras que,[(ngModel)]="currentHero.name"
es para enlace bidireccional, y la sintaxis se compone de:[ngModel]="currentHero.name"
y(ngModelChange)="currentHero.name = $event"
Si solo necesita aprobar modelo, use el primero. Si su modelo necesita escuchar eventos de cambio (por ejemplo, cuando cambia el valor del campo de entrada), use el segundo.
fuente
Es bastante simple [] => componente a plantilla () => plantilla a componente
[(ngModel)]
es una forma contratada de[ngModel]="currentHero.name" (ngModelChange)="currentHero.name=$event">
Más detalles aquí: https://angular.io/docs/ts/latest/guide/template-syntax.html#!#ngModel
fuente
Flujo de datos Angular2 +:
En Angular, los datos pueden fluir entre el modelo (clase de componente ts.file) y la vista (html del componente) de la siguiente manera:
Sintaxis:
modelo para ver:
Esta sintaxis también se conoce como enlace de propiedad . Ahora, si la
overRideRate
propiedad del campo de entrada cambia, la vista se actualizará automáticamente. Sin embargo, si la vista se actualiza cuando el usuario ingresa un número, laoverRideRate
propiedad no se actualizará.vista al modelo:
Lo que sucede aquí es que se activa un evento (en este caso, evento de entrada, pero podría ser cualquier evento). Luego podemos llamar a métodos de la clase de componente o guardar directamente la propiedad en una propiedad de clase.
Enlace de datos bidireccional:
La siguiente sintaxis se utiliza para el enlace de datos bidireccional. Básicamente es un azúcar sintáctico para ambos:
Ahora algo cambia dentro de nuestra clase, esto reflejará nuestra vista (modelo a vista), y cada vez que el usuario cambie la entrada, el modelo se actualizará (vista a modelo).
fuente
[ngModel]
evalúa el código y genera una salida (sin enlace bidireccional) .[(ngModel)]
evalúa el código y genera una salida y también habilita el enlace bidireccional .fuente