[英]how to remove '#' from url in angularjs
我的網址:eDemo / admin / test / list /#/ list
我想:eDemo / admin / test / 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)
。 確保將config函數上的參數$ 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>
另外請記住,永遠不要在任何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
});
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.