2016-07-17 3 views
3

Я хочу изменить свое состояние на «логин» нажатием кнопки. Итак, я добавил кнопку и в ng-click, я вызвал функцию registerForm (которую вы можете увидеть в приведенном ниже коде). но когда я нажимаю кнопку, я получаю следующую ошибку в консоли браузера.AngularJS - TypeError: Не удается прочитать свойство 'go' of undefined

TypeError: Cannot read property 'go' of undefined
at m.$scope.registerForm (controllers.js:27)
at fn (eval at compile (angular.js:14605), :4:227)
at b (angular.js:15694)
at e (angular.js:25622)
at m.$eval (angular.js:17444)
at m.$apply (angular.js:17544)
at HTMLFormElement. (angular.js:25627)
at Sf (angular.js:3488)
at HTMLFormElement.d (angular.js:3476)

app.controller('registerController', ['$scope',function ($scope,$state) { 
    $scope.mismatch=true; 

    $scope.$watch('retypepassword', function() 
    { 
     if($scope.retypepassword != null) 
     { 
      if($scope.password === $scope.retypepassword) 
      { 
       $scope.mismatch=true; 
       $scope.loginForm.$setValidity("valid", true); 
      } 
      else 
      { 
       $scope.mismatch=false; 
       $scope.loginForm.$setValidity("valid", false); 
      } 
     } 
    }, true); 

    $scope.registerForm=function() 
    { 
     $state.go('login', {}); 
    } 
}]); 
+0

Возможный дубликат [TypeError: Не удается прочитать свойство 'идти' неопределенных] (http://stackoverflow.com/questions/35748030/typeerror- can not-read-property-go-of-undefined) и множество одинаковых вопросов, найденных при поиске SO. – Rob

ответ

5

Inject $ состояние правильно

app.controller('registerController', ['$scope', '$state', function ($scope,$state) { 
+0

Огромное спасибо :) это сработало :) –

2

кажется, что пропустил впрыснуть $ состояние, обновление следующим образом поможет решить эту проблему.

 app.controller('registerController', ['$scope','$state',function ($scope,$state) 
0

Вам нужно впрыснуть $ состояние слишком

app.controller('registerController', ['$scope','$state',function ($scope,$state) { 
Смежные вопросы