2017-06-20 21 views
0

我想通過使用$ dirty屬性並相應地設置標誌來檢測用戶何時將值輸入到任何表單字段中。毫不奇怪,這個工程:

$scope.$watch('formDetails.$dirty', function() { 
    USR.userInputRecorded = true; 
}); 

但我也想檢測當/如果用戶已清空所有領域,有效地恢復了形式到原來的空狀態。下面的代碼段不起作用,我不知道爲什麼。有什麼方法可以監視表單何時變回「不髒」?

$scope.$watch('formDetails.$pristine', function() { 
    USR.userInputRecorded = false; 
}); 

謝謝。

回答

0

試試這個:

$scope.$watch('formDetails.$dirty', function(value) { 
    if (value === '') { 
    // field has been emptied; 
    your.form.$setPristine(true); 
    } else { 
    USR.userInputRecorded = true; 
    } 
}); 
+0

謝謝,但這不起作用。這似乎只能檢測到第一次輸入任何字段的值。在此之後,清空所有字段的行爲未被檢測到,並且將值重新輸入到任何字段中都不會再次產生「髒」事件。似乎只有一次。 – echobase