2013-06-19 4 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"); 
     } 
}); 

Но проблема, что я столкнулся это: на странице загрузки, она печатает «тест» в консоли firebug,

После этого, если я ввожу текст/пароль в поле пароля, он не выполняет функцию.

+1

Я думаю, что вы не используете нг-модель в вашем HTML – SET

+0

@set Спасибо, я использовал нг-модель = "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 PLS см. пример демо –

+0

Большое вам спасибо, это сработало. На самом деле я использовал ng-model = "user.password", а не "password". Теперь я изменил свои $ watch на $ scope. $ Watch ('user.password', validatePasswordFun); и его работа сейчас. – Shahzeb

Смежные вопросы