AngularJS - 类型错误: 无法读取未定义的 'go' 属性

3

我想在点击按钮时将我的状态更改为“登录”。所以,我添加了一个按钮,在 ng-click 中调用了函数 registerForm (您可以在下面的代码中看到)。但是当我按下按钮时,浏览器控制台会出现以下错误。

类型错误:无法读取未定义的 'go' 属性
在 m.$scope.registerForm (controllers.js:27)
在 fn (eval at compile (angular.js: 14605), :4:227)
在 b (angular.js:15694)
在 e (angular.js:25622)
在 m.$eval (angular.js:17444)
在 m.$apply (angular.js:17544)
在 HTMLFormElement. (angular.js:25627)
在 Sf (angular.js:3488)
在 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', {});   
    }
}]);

可能是重复的问题,与此类似:TypeError: Cannot read property 'go' of undefined,在搜索SO时发现了许多相同的问题。 - Rob
3个回答

5

正确地注入 $state

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

2

看起来忘记注入$state了,更新如下代码可以帮助解决这个问题。

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

0

你需要注入 $state

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

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接