[英]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.