我想知道如何限制访问任何和所有视图(登录/注册除外)视图,直到有问题的用户登录。
然后我会使用$ http.post将表单内容发布到我的后端,如果用户登录时没有问题,请重定向到短划线视图。
答案 0 :(得分:2)
我建议使用$stateChangeStart
事件来监听视图的更改,并检查用户是否已登录。由于Ionic使用ui-router
而不是Angular的默认$route
,因此您需要使用ui-router
的API。
https://angular-ui.github.io/ui-router/site/#/api/ui.router.state。$状态
$rootScope.$on('$stateChangeStart',
function(event, toState, toParams, fromState, fromParams){
event.preventDefault();
// Check if user is logged in here, if not redirect state
if (!User.valid) {
$state.go('home.login');
}
});
使用声明状态的解析功能需要您为要保护的任何路由添加解析。使用事件监听器可以在一个地方处理它。
答案 1 :(得分:0)
如果未记录,您可以解决重定向问题
config(['$routeProvider', function ($routeProvider) {
$routeProvider
.when('/restricted',{
'templateUrl': //some template url,
//Etc...
//then ...
'resolve': {
'onEnter': function (redirectService, authService) {
if (!!!authService.isLogged()) {
redirectService.redirectNotlogged();
}
}
}
});
}]);