AngularJS基于服务的重定向路由

时间:2014-05-23 10:49:26

标签: angularjs

有没有办法根据来自服务的条件重定向路由? 目前我试着这样做:

.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');
                });
            }
        }});

但是找不到提供者总是会失败。我怎么能正确地做到这一点?

1 个答案:

答案 0 :(得分:2)

如果它在缩小时出错,可能是因为它正在重命名你。依赖注入通常会在缩小时被粉碎。尝试将重定向更改为:

redirect: ["$routeParams", "$location", "$http", "$cookies", function ($routeParams, $location, $http, $cookies) {
    ...
}]

这里有关于它的文档:https://docs.angularjs.org/tutorial/step_05寻找“关于缩小的注释”