Разница между [(ngModel)] и [ngModel] для привязки состояния к свойству?

Вот пример шаблона:

 <input type="number" class="form-control" [(ngModel)]="overRideRate" formControlName="OverRideRate">

 <input type="number" class="form-control" [ngModel]="overRideRate" formControlName="OverRideRate">

Здесь оба они делают то же самое. Какой из них предпочтительнее и почему?

Ответ 1

[(ngModel)]="overRideRate" - короткая форма [ngModel]="overRideRate" (ngModelChange)="overRideRate = $event"

  • [ngModel]="overRideRate" - привязать overRideRate к input.value
  • (ngModelChange)="overRideRate = $event" заключается в обновлении overRideRate значением input.value при событии change.

Вместе они представляют собой Angular2 для двусторонней привязки.

Ответ 2

[ngModel]="currentHero.name" - синтаксис односторонней привязки, а

[(ngModel)]="currentHero.name" предназначен для двусторонней привязки, а синтаксис - из:

[ngModel]="currentHero.name" и (ngModelChange)="currentHero.name = $event"

Если вам нужно только пройти модель, используйте первую. Если вашей модели необходимо прослушать события изменения (например, при изменении значения поля ввода), используйте второй.

Ответ 3

Это довольно просто [] = > компонент в шаблон () = > шаблон для компонента   [(ngModel)] является сжатой формой [ngModel]="currentHero.name" (ngModelChange)="currentHero.name=$event">

Подробнее здесь: https://angular.io/docs/ts/latest/guide/template-syntax.html#!#ngModel