2016-04-27 44 views
1

我想知道是否有可能'阻止'表單域更新(輸入,選擇....),它是由於用戶交互而變髒。 如果我更新ng模型原語(即:將pippo從1設置爲X),即使手動編輯控件,輸入 也會更新。角度NG模型不會更新髒值

有可能防止?

demo page: 

http://plnkr.co/edit/ClXoS7YVcEDtcApsNpde 

輸入欄每X秒計數一次。 如果我輸入「AAA」,我想更新停止,因爲 輸入它是「髒」由於用戶交互。

+0

只需在'this.update'函數內添加驗證 – daymannovaes

回答

0

如果我有這個問題,也許這就是你想要做的?

$scope.$watch("pippo", function(){ 
    if($scope.pippotmp != $scope.pippo) 
    $scope.useredited = true; 
}); 

修訂答

plunker

你可以繼續從輸入改變分離模式......在臨時變量

+0

nope,我不能取消間隔,AAA是用戶輸入,可以是任何東西。事情是「用戶有修改輸入」「用戶沒有修改輸入值」 – user3804873

+0

看到更新的跳閘,也許我現在得到它 – daniel

0

輸入元素上添加ngChange屬性,

Update Plunker

<input type=text ng-model="pippo" ng-change="userChanged()"/> 

//controller 
$scope.pippo = 1; 
$scope.isUserChanged = false; 
$scope.counter= 1; 

$scope.userChanged = function(){ 
    $scope.isUserChanged = true; 
} 

this.update = function() { 
    if(!$scope.isUserChanged){ 
     $scope.pippo += 1; 
    } 
} 
$interval(this.update, 3000); 

userChanged將被稱爲當用戶打字,但是當pippo由控制器等方法改變不會被調用,這樣我們就可以在userChanged設置一個標誌,指示是否輸入已經被用戶覆蓋

0

我可能會得到這個問題錯了,但如果我理解正確的話,那麼NG-模型的選擇是你在找什麼。

例如,您可以更新模型,只有當用戶離開輸入 NG-模型選項=「{updateOn:‘模糊’}」

您可以在文檔閱讀更多關於它:https://docs.angularjs.org/api/ng/directive/ngModelOptions