AngularJs和Codeigniter路由导致无限重定向循环

时间:2013-10-28 03:18:13

标签: javascript php codeigniter angularjs

我正在使用angularJs1.2和codeigniter PHP框架工作。我正在使用angularJS路由功能如下:

var app = angular.module('app', ['ngAnimate', 'ngRoute']).config(['$routeProvider', '$locationProvider', function($routeProvider, $locationProvider) {
        $routeProvider.when('/profile/personalInfo', {templateUrl: '<?php echo base_url().'profile/personalInfo' ?>', controller: personalInfo});
        $routeProvider.when('/profile/myPlaces', {templateUrl: '<?php echo base_url().'profile/myPlaces' ?>', controller: myPlaces});
        $routeProvider.otherwise({redirectTo: '/'});
        $locationProvider.html5Mode(true);
    }]);

如您所见,templateUrlbase_url().'profile/personalInfo'之类的codeigniter路径加载。但是用户可以直接通过这条路径访问部分页面,我不想这样,所以我使用codeiginter路由来阻止直接访问部分页面,如下所示:

$route['profile/(:any)'] = 'profile/index/$1';

但是当我设置codeigniter路由页面时,转到角度内部的无限重定向循环而不是孔页面。当我删除codeiginter路由它工作正常,但我的部分页面也可以访问。 我怎么能解决这个问题?

1 个答案:

答案 0 :(得分:0)

我解决了问题,问题是codeigniter和angularjs的路由是相同的,这导致了问题。在我的示例中,angularjs路由是/profile/personalInfo并且codeigniter路由是$route['profile/(:any)']并且这导致了循环,当我将angularjs路由更改为/user/personalInfo时,它工作正常。