2013-06-19 77 views
0

我寫了這個代碼,看在密碼領域的變化, 我的代碼是

var Controllers = angular.module('myapp'); 
    Controllers.controller('SignUpCtrl', function ($scope,$http,$location) { 

    $scope.$watch($scope.password, validatePasswordFun); 

      function validatePasswordFun(newValue,oldValue,scope){ 
        console.debug("Test"); 
     } 
}); 

但是,我面臨的問題是: 在頁面加載,它打印「測試」在螢火蟲控制檯,

之後,如果我在密碼字段中輸入文本/密碼,它不會執行該功能。

+1

我想你不會在你的HTML – SET

+0

@SET由於採用NG-模型,我用NG-模型=「user.password的「不只是」密碼「 – Shahzeb

回答

4

你正在看在錯誤的方式應該是字符串值,像

var Controllers = angular.module('myapp'); 
    Controllers.controller('SignUpCtrl', function ($scope,$http,$location) { 

    $scope.$watch('password', validatePasswordFun); 

      function validatePasswordFun(newValue,oldValue,scope){ 
        console.debug("Test"); 
     } 
}); 

內部看,所以你的字符串「密碼」裏面裹使得$解析可能被利用現有的$解析服務,預計該屬性名正常工作

--edit工作HTML

<!DOCTYPE html> 
<html ng-app="Demo" > 

    <head lang="en"> 
    <meta charset="utf-8"> 
    <title>Custom Plunker</title> 
     <script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.0.5/angular.min.js"></script> 
    </head> 

    <body ng-controller="test" > 
     <input type="password" ng-model="password" /> 
     <script> 
      var app = angular.module('Demo', []); 
      function test($scope) { 
       $scope.$watch('password', function (newvalue, oldvalue) { 
        alert(newvalue); 
       }); 
      } 
     </script> 
    </body> 



</html> 
+0

它不工作後,將其更改爲字符串 – Shahzeb

+0

我已添加html請參閱示例演示 –

+0

非常感謝,它的工作。其實我使用ng-model =「user.password」而不是「password」。現在我將$ watch更改爲$ scope。$ watch('user.password',validatePasswordFun);現在它的工作。 – Shahzeb