2016-04-24 115 views
0
<input ng-model="name" ng-change=change() placeholder="name"> 
<button ng-click="check()"> 
$scope.name = 'Default'; 

$scope.change = function(i){ 
console.log(i) 
} 

如何檢查$ scope.name仍然等於Default在angularjs中使用ng-change?ng-與之前的值進行比較

回答

1
<input ng-model="name" ng-change=change() placeholder="name"> 
<button ng-click="check()"> 

$scope.name = 'Default'; 
var oldV = $scope.name; 
$scope.change = function(i){ 
    if($scope.name === oldV) { 
     console.log('same'); 
    } else { 
     // update oldV here to latest if you want 
    } 
} 

但爲此目的,$ watch應該更好。 我不認爲ng-change跟蹤你的變量。 https://docs.angularjs.org/api/ng/type/ $ rootScope.Scope

+0

爲什麼我需要使用$ watch,因爲我正在做同樣的範圍內的所有事情? –

+0

如果我需要多個輸入,該怎麼辦?對他們全部使用ng-change? –

+0

$ scope。$ watch是相同的範圍。 只要觀看值改變並且任務完成時,它就會運行回調,您可以停止觀察者。 –

相關問題