当我使用时,ng-route得到了infinte

时间:2015-12-17 12:33:31

标签: angularjs

我已经使用了角度js和acl在其他页面中工作正常但是当我进入主页时它会进入无限呼叫。

见下面是我的路线代码。

app.config(['$routeProvider','$locationProvider',
    function ($routeProvider,$locationProvider,$q) {
        $routeProvider.
                when('/error', {
                    templateUrl: 'app/views/front/donotaccess.html',
                    controller: 'DonotaccessController',
                    title: ' denied'
                }).
                when('/home', {
                    templateUrl: 'app/views/front/home.html',
                    controller: 'HomeController',
                    title: 'Home',
                    resolve: {
                        'acl': function (AclService, $q) {
                            if (AclService.can('home')) {
                                // Has proper permissions
                                return true;
                            } else {
                                // Does not have permission
                                return $q.reject('Unauthorized');
                            }
                        }
                    }
                }).
        when('/search', {
                    templateUrl: 'app/views/front/searchresult.html',
                    controller: 'SearchController',
                    title: ' Search Results',
                    resolve: {
                        'acl': function (AclService, $q) {

                                return true;

                        }
                    }

                when('/cancel', {
                    templateUrl: 'app/views/front/paymentcancel.html',
                    controller: 'PaycancelController',
                    title: ' Status'
                }).otherwise({
                    redirectTo: '/home'
                });

            $locationProvider.html5Mode(true);
    }]);

当我刷新页面时它会调用无限可以任何人有想法请让我知道..

1 个答案:

答案 0 :(得分:0)

这个技巧可能适合你。

您可以为此类路线创建服务。

when('/', {
    resolve: {redirect: 'defaultredirection'}
})

现在创建一个这样的服务。

app.service('defaultredirection', ['$window',  function($window) {        

    if($window.location.hostname == 'localhost'){
        //for local use.
        window.location.href = "/yourfolder/home"; 
    }else{
        //for live use
        window.location.href = "Your-URL-here/home"; 
    }  

}]);

如果它不起作用,请不要犹豫,让我知道。