相同状态下的Angularjs location.path不起作用

时间:2015-10-27 01:53:26

标签: angularjs path location logout

当我尝试注销并执行location.path(' /')到主页时,我遇到了问题。

以下是我的代码,

angular.module('MyApp')
  .controller('LogoutCtrl', function($location, $auth,$rootScope) {
    if (!$auth.isAuthenticated()) { return; }


    $auth.logout()
      .then(function() {
          $auth.logout();
          $rootScope.user='';
          $location.path('/');
        });
  });

这个电话的app.js是:

.state('login.logout', {
            url: '/logout',
            template: null,
            controller: 'LogoutCtrl'
          })

当我在同一状态下执行注销操作时,我发现它没有重定向。这是http://localhost:8000/#/

但是当我处于不同的状态时它会起作用。有什么指导吗?

3 个答案:

答案 0 :(得分:1)

1.您使用状态提供程序,因此每当您想使用url重定向页面时都需要使用         $ location.url( '/'); 如果你想使用路径,那么你需要传递州名作为$ location的参数         $ location.path( '/页/登录'); 这里'/ page / login'是您的登录名或您希望重定向该页面状态的任何页面。

答案 1 :(得分:0)

尝试:

window.location.href = "/";

答案 2 :(得分:0)

我强烈建议您使用ui-router进行重定向。 有一个家庭'州指向' /' URL

.state('Home', {
        url: '/',
        ....
      })

然后做一些像

这样的事情
$auth.logout()
  .then(function() {
  // do your cleanup
  return $state.go('Home');
})