如何在 AngularJS 中从 URL 中删除“#”


how to remove '#' from url in angularjs

我的网址: 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
});