基于服务的AngularJS重定向路由
有没有一种方法可以根据服务提交的条件重定向路由? 目前我试着这样做:基于服务的AngularJS重定向路由,angularjs,Angularjs,有没有一种方法可以根据服务提交的条件重定向路由? 目前我试着这样做: .otherwise({ resolve: { redirect: function ($routeParams, $location, $http, $cookies) { $http({method: 'GET', url: '/user/' + $cookies.id}).success(function(data) { if
.otherwise({
resolve: {
redirect: function ($routeParams, $location, $http, $cookies) {
$http({method: 'GET', url: '/user/' + $cookies.id}).success(function(data) {
if(data.isSuperUser || data.isStaff) {
$location.path('/info/info');
} else {
$location.path('/unity/list');
}
}).error(function() {
$location.path('/unity/list');
});
}
}});
但它总是在找不到提供程序的情况下失败。我怎样才能正确地做到这一点呢?如果它在minify上出错,可能是因为它在你身上重命名了东西。依赖注入通常会在缩小时被压碎。尝试将重定向更改为:
redirect: ["$routeParams", "$location", "$http", "$cookies", function ($routeParams, $location, $http, $cookies) {
...
}]
这里有相关文档:查找“缩小说明”您是否收到未知的提供程序错误?是的,似乎$location是问题所在,它仅在我使用yeoman缩小javascript时给出错误。在开发版本上,它可以工作。