Как определить, изменилось ли значение текстового поля или нет?
Я упомянул мой 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
}
});
}