我正在尝试创建一个清除用户 session 并将它们重定向回根主页的路由。

.config(function config( $routeProvider, $stateProvider ) {

    $routeProvider.
        when('/logout', {resolve: {redirect: function(Session){
            Session.clear();
            return "/home";
        }}});

我显然在这里做错了什么,因为打电话
$location.path("/logout");

...忽略该函数并重定向回默认路由。我尝试将 console.log 语句添加到函数中以查看它是否被调用。

我是否错误地使用了重定向功能?

最佳答案

您是否考虑将注销逻辑放在单独的 Controller 中?会更简洁,更健壮,并使重定向更直接。像这样:

function LogoutController($location) {
    Session.clear();
    $location.path('/home');
}

你的路线是:
when('/logout', {
  template: '', //A template or templateUrl is required by AngularJS, even if your controller always redirects.
  controller: 'LogoutController'
}).

关于angularjs - Angular - 注销重定向路由,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/19635407/

10-16 17:50