当用户登录时,如果令牌存在,我将在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
视图
答案 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');