我的网址: eDemo/admin/test/list/#/list
我想要:电子演示/管理员/测试/列表
.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 on config 函数作为参数传递。
这里是示例 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>
另请记住,永远不要在任何类型的 url 中传递#
,例如您重定向,您通过 AJAX 或任何地方提交表单。
在路由结束时使用:
$locationProvider.html5Mode(true);
这应该是:
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',
})
$locationProvider.html5Mode(true);
}
在查看文件中:
<head>
<meta charset="utf-8">
<base href="/">
</head>
你可以像这样使用$locationProvider
$locationProvider.html5Mode({
enabled: true,
requireBase: false
});