-1

我已經提到過我的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是得到加載,它會在文本框DISPLY 「ABC」。這很好。 現在如果用戶將該名稱更改爲「XYZ」,則$ scope.name值爲「XYZ」。 所以我需要確定輸入值是否改變。之前的值是「ABC」,現在值是「XYZ」,我們如何計算出該值已更改?

回答

1

可以使用ngChange指令。

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

然後,在你的控制器,添加一個名爲變化的範圍方法:

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

做這樣的:

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

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

你並不需要指明手錶表達最後一個參數TRUE;,它意味着觀察對象屬性的變化。你正在看的'name'字段是字符串 – karaxuna