2017-02-28 21 views
17

Đây là ví dụ mẫu:Sự khác biệt giữa [(ngModel)] và [ngModel] cho trạng thái liên kết với thuộc tính?

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

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

Tại đây cả hai đều giống nhau. Cái nào được ưa thích và tại sao?

+2

'[ngModel]' - đó là thuộc tính ràng buộc duy nhất, không phải ràng buộc hai chiều. Vì vậy, việc nhập giá trị mới sẽ không cập nhật 'overRideRate'. – VadimB

+1

[(ngModel)] là hai cách ràng buộc đến từ Angular 2. [ngModel] chỉ để hiển thị. –

Trả lời

20

[(ngModel)]="overRideRate" là hình thức ngắn [ngModel]="overRideRate" (ngModelChange)="overRideRate = $event"

  • [ngModel]="overRideRate" là để ràng buộc overRideRate đến input.value
  • (ngModelChange)="overRideRate = $event" là để cập nhật overRideRate với giá trị của input.value khi sự kiện change được phát ra.

Cùng nhau chúng là những gì Angular2 cung cấp cho liên kết hai chiều.

12

[ngModel]="currentHero.name" là cú pháp cho liên kết một chiều, trong khi,

[(ngModel)]="currentHero.name" dành cho liên kết hai chiều và cú pháp là hợp chất từ:

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

Nếu bạn chỉ cần phải vượt qua mô hình, sử dụng đầu tiên. Nếu mô hình của bạn cần nghe các sự kiện thay đổi (ví dụ: khi giá trị trường nhập thay đổi), hãy sử dụng mô hình thứ hai.

Các vấn đề liên quan