Angular在路由之外使用$location路径重定向

angular redirect with $location path outside the route

本文关键字:location 路径 重定向 路由 Angular      更新时间:2023-09-26

我有一个index.html页面,里面有一个$routeProvider。每当我进入这个页面的新路径时,我都会检查用户是否已登录。像这样:

myApp.run(function($rootScope, $location, authService) {
    $rootScope.$on("$routeChangeStart", function (event, next, current) {
        $rootScope.title = next.$$route.title;
        authService.isLogged().then(null, function() {
            $location.path('/login');
        });
    });
});

我有一个名为login.html的单独页面。如果用户没有登录,我想要一个javascript行将他重定向到login.html。在这个例子中,我复制/粘贴,如果我有URL

localhost/myapp/#/home

它重定向到

localhost/myapp/#/login

但是我想让它重定向到

localhost/myapp/login

不含#

您可以使用纯js,如果您的基础总是/myapp, login就足够了:

$window.location.href = 'login'; //If you care about testability
window.location.href = 'login'; //If you don't