Как определить, изменилось ли значение текстового поля или нет?

Я упомянул мой HTML.

<div ng-controller="myCtrl">
     <input type=text ng-model="name">
</div>

в моем файле JS

function myCtrl($scope){
     $scope.name=//this field comes from DB say 'ABC'
}

Мой вопрос:

Когда мой HTML будет загружен, он будет отображать "ABC" в текстовом поле. Что хорошо. Теперь, если пользователь изменит это имя на "XYZ", значит, значение $scope.name равно "XYZ". Поэтому мне нужно определить, что входное значение изменилось. Предыдущее значение "ABC", а теперь значение "XYZ", как мы можем выяснить, что значение изменилось?

3 ответа

Решение

Вы можете использовать директиву ngChange.

<input type="text" ng-model="name" ng-change="change()">

Затем в вашем контроллере добавьте метод с именем change в область действия:

$scope.change = function () {
    console.debug('Changed to ' + $scope.name);
}

Сделай это так:

function myCtrl($scope){
    $scope.$watch('name', function(newValue, oldValue){

    });
}
function myCtrl($scope){
    var dbName= 'ABC'; //this field comes from DB say 'ABC'
    $scope.name= dbName;
    $scope.$watch('name', function(newValue) {
       if(newValue != dbName) {
           // do something
       }
    });
}
Другие вопросы по тегам