我有一个使用UI-Router和嵌套视图构建在angularjs中的单页面应用程序。我的代码如下所示:Angular UI路由器,解决嵌套视图
app.config(['$stateProvider', '$urlRouterProvider', '$httpProvider' ,'$mdDateLocaleProvider', '$locationProvider', function ($stateProvider, $urlRouterProvider, $httpProvider, $mdDateLocaleProvider, $locationProvider) {
var rootpath = config.paths.components;
$stateProvider.state('home', {
url: '/',
views: {
index: {
templateUrl: rootpath + '_root/template.html',
controller: "RootController"
},
"[email protected]": {
templateUrl: rootpath + 'header/header-template.html',
controller: "HeaderController"
},
"[email protected]": {
templateUrl: rootpath + 'sidebar/sidebar-template.html',
controller: "SidebarController"
},
"[email protected]": {
templateUrl: rootpath + 'main/main-template.html',
controller: "MainController"
}
},
resolve: {
authorize: ['RootService', function (RootService) {
var auth = RootService.getKey();
return RootService.getConfig(auth.key);
}]
},
});
$urlRouterProvider.otherwise('/');
}]).run(['$rootScope', '$state', '$window', function($rootScope, $state, $window){
$rootScope.$on('$stateChangeError', function(event, toState, toParams, fromState, fromParams, error){
$window.location = error.status +'.html';
});
在“home”状态中,我正在做一个解析,以查看传入的身份验证密钥是否有效。
如果密钥无效或已过期,$stateChangeError
事件捕获错误并将用户重定向到错误页面。
这适用于应用程序启动和刷新时的正常工作。
问题是,如果密钥已过期(仅适用于十分钟)且应用程序未重新编码,则事件不会收到错误消息。
有关如何解决这个问题的任何想法?
无论在你的代码,你在哪里存在本身无效的键,你可以尝试将网页重定向为$ window.location的= error.status +”。HTML “; – atul