0

我已经提到了我的 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”,我们怎么知道值发生了变化?

4

3 回答 3

1

您可以使用 ngChange 指令。

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

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

$scope.change = function () {
    console.debug('Changed to ' + $scope.name);
}
于 2014-02-07T06:16:45.430 回答
0

像这样做:

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

    });
}
于 2014-02-07T06:16:37.150 回答
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
       }
    });
}
于 2014-02-07T06:18:32.310 回答