1

我正在使用带有 codeigniter PHP 框架的 angularJs1.2。我正在使用 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);
    }]);

如您所见,templateUrl由 codeigniter 路径加载,例如base_url().'profile/personalInfo'. 但是用户可以通过这个路径直接访问部分页面,我不希望这样,所以我使用 codeiginter 路由来防止直接访问部分页面,如下所示:

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

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

4

1 回答 1

0

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

于 2014-05-29T09:38:39.897 回答