2017-01-09 27 views
6

Ai đó có thể cho tôi biết thực hành tốt nhất để so sánh giá trị cũ và mới của ngModel là gì?Góc 2 ngModelThay đổi giá trị cũ

Trong góc 1:

$scope.$watch('someProperty', funciton(oldVal, newVal){ 
    // code goes here 
}) 

Tôi yêu cầu này vì (ngModelChange) không bao giờ mang lại cho tôi những oldVal, chỉ có newVal.

Trong trường hợp của tôi, tôi đang sử dụng ngModel trong một thẻ <select> và so sánh lựa chọn cũ với mới:

<select [(ngModel)]="current" (ngModelChange)="onModelChange($event)"> 
    <option *ngFor="let item of myArray" [ngValue]="item">{{item.name}} </option> 
</select> 

Trả lời

6

này có thể làm việc

(ngModelChange)="onModelChange(oldVal, $event); oldVal = $event;" 

hoặc

(ngModelChange)="onModelChange($event)" 
oldValue:string; 
onModelChange(event) { 
    if(this.oldValue != event) { 
    ... 
    } 
    this.oldValue = event; 
} 
+0

Tôi đã thử điều này nhưng param oldVal là không xác định. Tôi đang sử dụng so sánh này trong một thẻ (xem bài viết của tôi). tôi đoán (tập trung) không liên quan nữa. bạn có thể viết một ví dụ với một thẻ được chọn không? –

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