如何识别文本框值是否发生变化?

时间:2014-02-07 05:58:27

标签: angularjs angularjs-directive angular-ui angularjs-ng-change

我已经提到了我的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 个答案:

答案 0 :(得分:1)

您可以使用ngChange指令。

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

然后,在控制器中,将名为 change 的方法添加到范围:

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

答案 1 :(得分:0)

这样做:

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

    });
}

答案 2 :(得分:0)

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
       }
    });
}