繁体   English   中英

如何从angularjs中的url中删除“#”

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

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM