2017-01-09 3 views
6

Может кто-нибудь, пожалуйста, скажите мне, что является лучшей практикой для сравнения старого и нового значения ngModel?Угловое 2 ngModelИзменить старое значение

В угловом 1:

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

Я спрашиваю это потому, что (ngModelChange) никогда не приносит мне oldVal, только newVal.

В моем случае, я использую ngModel в <select> тег и сравнить старый выбор с новым:

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

ответ

6

Этот мог бы работать

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

или

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

Я пробовал это, но параметр oldVal не определен. Я использую это сравнение в теге теге (см мой пост отредактирован). я думаю (фокус) больше не имеет отношения к делу. можете ли вы написать пример с тегом select? –