2017-04-20 125 views
0

我正在嘗試使用Angular 1.x監視窗體的更改。我正在這樣做,這樣如果用戶在保存數據之前離開頁面,我可以顯示警告。我能夠$觀看形式。$ valid就好,但形式。$髒只是永遠不會開火。所以要清楚,這個工程:

$scope.$watch('forms.editForm.$valid', function (newVal, oldVal) { 
    // This is how we tell if there are unsaved form changes so we don't navigate away 
    $scope.unsavedFormChanges = oldVal; 
}, true); 

這並不:

$scope.$watch('forms.editForm.$dirty', function (newVal, oldVal) { 
    // This is how we tell if there are unsaved form changes so we don't navigate away 
    $scope.unsavedFormChanges = oldVal; 
}, true); 

誰能請賜教,爲什麼我不能看$ $髒,如果有這樣做的備份計劃? - 謝謝

回答

1

把我的頭撞到牆上足夠長的時間後,我想我已經明白了這一點。它似乎是$ valid是一個對象,$ dirty是一個值。這就是第三個參數的來源。$ watch語句結尾的「true」告訴$ watch它正在看什麼。 True表示它是一個對象,False表示它是一個值。話雖這麼說,這個工程:

$scope.$watch('forms.editForm.$dirty', function (value) { 
    // This is how we tell if there are unsaved form changes so we don't navigate away 
    $scope.unsavedFormChanges = value; 
    $log.info('Form Dirty Changed: ' + value); 
}, false); 

我也改變了OLDVAL /的newval只是一個值,因爲這是所有我們得到的。