重定向到angularjs中的另一个视图

时间:2016-05-19 16:18:42

标签: javascript html angularjs

当用户登录时,如果令牌存在,我将在localstorage中设置令牌,它将进入博客页面,否则启动登录页面。

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

    .state('app', {
    url: '/app',
    abstract: true,
    templateUrl: 'templates/menu.html',
    controller: 'AppCtrl'
  })
  .state('app.login', {
      url: '/login',
      views: {
        'menuContent': {
          templateUrl: 'templates/login.html',
          controller:'LoginCtrl'
        }
      }
    })
.state('app.blog', {
    url: '/blog',
    views: {
      'menuContent': {
        templateUrl: 'templates/blog.html',
        controller: 'PlaylistCtrl'
      }
    }
  })

  //if token null got login
     if(window.localStorage.getItem('usertoken')==null){
      $urlRouterProvider.otherwise('/app/login');
     }else{
       //go to blog
       alert('logged');
       $urlRouterProvider.otherwise('/app/blog');
     }

});

我会得到alert('logged'),但它不会转到blog视图,而是转到login视图

2 个答案:

答案 0 :(得分:1)

您可以制作中间视图。想象一下dashboard.html

<ion-view >
  <ion-content>
  </ion-content>
</ion-view>

让你去那里

$urlRouterProvider.otherwise('/app/dashboard');

在这个控制器中进行comprobation

.controller('DashboardCtrl', function($rootScope, $state) {

if(window.localStorage.getItem('usertoken')==null){
      $state.go('/app/login');
     }else{
       //go to blog
       alert('logged');
       $state.go('/app/blog');
     }
});

答案 1 :(得分:1)

试试这个

$urlRouterProvider.otherwise(window.localStorage.getItem('usertoken')==null ? '/app/login' : '/app/blog');