我正在使用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);
}]);
如您所见,templateUrl
由base_url().'profile/personalInfo'
之类的codeigniter路径加载。但是用户可以直接通过这条路径访问部分页面,我不想这样,所以我使用codeiginter路由来阻止直接访问部分页面,如下所示:
$route['profile/(:any)'] = 'profile/index/$1';
但是当我设置codeigniter路由页面时,转到角度内部的无限重定向循环而不是孔页面。当我删除codeiginter路由它工作正常,但我的部分页面也可以访问。 我怎么能解决这个问题?
答案 0 :(得分:0)
我解决了问题,问题是codeigniter和angularjs的路由是相同的,这导致了问题。在我的示例中,angularjs路由是/profile/personalInfo
并且codeigniter路由是$route['profile/(:any)']
并且这导致了循环,当我将angularjs路由更改为/user/personalInfo
时,它工作正常。