2017-01-09 66 views
6

有人可以告訴我什麼是比較ngModel的舊值和新值的最佳做法嗎?Angular 2 ngModelChange舊值

在角1:

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

我問這個,因爲(ngModelChange)從來沒有帶給我的oldVal,只有newVal

在我的情況,我在<select>標籤使用ngModel和比較舊的選擇用新:

<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參數是未定義的。我在標籤使用這個比較 - (見我的編輯職位)。我猜(重點)不再相關。你能寫一個帶有選擇標籤的例子嗎? –