簡體   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