繁体   English   中英

Angular应用仅在第二次单击事件后重定向

[英]Angular app only redirects after second click event

我遇到了一个问题,即我的应用仅在第二次on click事件后才会重定向。 我已经在所有代码中放置了控制台日志,并且可以在location.path()调用之后看到我设置的日志。

在第二次on click事件中,应用程序将立即重定向(在searchTeam函数有机会完成之前)。 有什么想法我做错了吗? 下面是代码。

function SearchController($scope, $location, API, ENV, SignUpShared) {
    var vm = this;
    vm.cdnBaseUrl = ENV.cdnBaseUrl;
    vm.shared = SignUpShared;

    vm.shared.emailConfirmation = undefined;
    vm.submit = function() {

        if($scope.emailAddress && $scope.emailAddress.trim().length > 0) {
            API.searchTeam($scope.emailAddress).then(function() {
                vm.shared.emailType = vm.shared.FIND_TEAM;
                vm.shared.emailConfirmation = $scope.emailAddress;
                $location.path("/emailconfirmation");
            });
        }
    };
}

SearchController.$inject = ["$scope", "$location", "API", "ENV", "SignUpShared"];

AngularJS事件句柄超时可能是问题。 尝试下面的代码,希望对您有用。

if($scope.emailAddress && $scope.emailAddress.trim().length > 0) {
    API.searchTeam($scope.emailAddress).then(function() {
        vm.shared.emailType = vm.shared.FIND_TEAM;
        vm.shared.emailConfirmation = $scope.emailAddress;
        $timeout(function () {
            $location.path("/emailconfirmation");
        }, 0);
    });
}

另外,相应地更新注入数组。

SearchController.$inject = ["$scope", "$location", "API", "ENV", "SignUpShared", "$timeout"];

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM