2016-10-05 13 views
2

Я новичок в Angular2, просматривая блоги на Angular2, я столкнулся с NgModel и ngModel. Я понимаю, что [(ngModel)] используется для двусторонней привязки. Может ли кто-нибудь объяснить, в чем разница между ними?NgModel vs ngModel in Angular2

ответ

1

NgModel - это класс, который реализует директиву ngModel.
ngModel является селектором этой директивы.
Это означает, что в HTML используется ngModel как

<input [(ngModel)]="someProp"> 

, но если вам нужно, чтобы ввести его (например, для ControlValueAccessor) вы впрыснуть экземпляр класса

constructor(private ngModel:NgModel) {} 

где ngModel это просто имя переменной Я выбираю, и NgModel - это класс, в котором мы хотим, чтобы экземпляр вводился.

Смотрите также https://github.com/angular/angular/blob/26d1423ae93a743bd57a5fed9997c08c52f4bbfd/modules/%40angular/forms/src/directives/ng_model.ts#L90

Источник показывает, что из-за exportAs: 'ngModel' он может быть использован как

<input [(ngModel)]="someProp" let-xxx="ngModel"> 
{{xxx.name}} 

, например, для вывода name собственности (или любое другое свойство) экземпляра NgModel, который был применен к нашему <input>.

Смежные вопросы