我的网址:eDemo / admin / test / list /#/ list
我想要:eDemo /管理员/测试/列表
js:
var serviceBase ="http://admin-pc/eDemo/admin/test/";
function config($routeProvider, $locationProvider) {
$routeProvider
.when('/add', {
controller: 'addController',
templateUrl: serviceBase + 'add',
controllerAs: 'vm',
})
.when('/edit', {
controller: 'editController',
templateUrl: serviceBase + 'edit',
controllerAs: 'vm',
})
.otherwise({ redirectTo : 'list' });
}
的HTML:
<div class='ng-view'></div>
解决方法:
您只需要在路由提供者配置中添加html5Mode(true).
确保在配置函数中传递参数$locationProvider作为参数.
这里是示例js代码:
var serviceBase ="http://admin-pc/eDemo/admin/test/";
app.config(['$routeProvider','$locationProvider',
function ($routeProvider,$locationProvider) {
$routeProvider
.when('/add', {
controller: 'addController',
templateUrl: serviceBase + 'add',
controllerAs: 'vm',
})
.when('/edit', {
controller: 'editController',
templateUrl: serviceBase + 'edit',
controllerAs: 'vm',
})
.otherwise({ redirectTo : 'list' });
$locationProvider.html5Mode(true);
}
并且您的HTML应该如下所示:
<div class='ng-view'>
<base href="<?=url('/').'/'?>">
</div>
另外请记住,不要像重定向,通过AJAX或任何地方提交表单那样在任何类型的URL中传递#.