var myApp = angular.module('myApp',['ui.router'])
.factory('httpInterceptor',['$q','$rootScope',function ($q,$rootScope)
{
return {
'response': function(response) {
//拦截所有的服务器端响应
console.log("hahahah");
//可以通过status code来检查该请求是否因为没登录而被后端驳回了
if(response.status === "错误码"){
//跳转到登录页面
}
//也可以通过响应的数据来判断
if(response.data === "你的各种判断逻辑"){
//跳转到登录页面
}
//具体如何判断“未登录错误”,取决于你后端api的实现
}
}
}])
//配置路由
.config(['$stateProvider','$urlRouterProvider',function($stateProvider,$urlRouterProvider){
//设置默认路由
$urlRouterProvider.otherwise("/project/all");
//设置指定路由
$stateProvider
//项目
.state('project',{
url: '/project',
templateUrl: "template/project/project.html",
controller: "projectCtrl"
}).state('project.new', {
url: '/new',
templateUrl: "template/project/project_new.html"
})
//任务
.state('task',{
url: '/task',
templateUrl: "template/task.html",
controller: "taskCtrl"
})
//团队
.state('team',{
url: '/team',
templateUrl: "template/team.html",
controller: "teamCtrl"
});
//这里是问题的所在,启用拦截工厂方法,之前写的路由内容不见了。
//怎么处理才能,即有ui-router和登录拦截
// $httpProvider.interceptors.push('httpInterceptor');
}])
お誘いありがとうございます。
試してみてください
リーリー