如何从angularjs中的url中删除'#'

Posted

技术标签:

【中文标题】如何从angularjs中的url中删除\'#\'【英文标题】:how to remove '#' from url in angularjs如何从angularjs中的url中删除'#' 【发布时间】:2016-06-23 10:38:15 【问题描述】:

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

【问题讨论】:

scotch.io/tutorials/… @DeepKakkar ..您最好复制链接代码的主要部分并在答案部分发布..它将删除该链接的依赖性,问题将在这里得到答案.. 【参考方案1】:

您只需在路由提供程序配置中添加html5Mode(true)。 确保您将参数 $locationProvider 作为参数传递给 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 或任何地方提交表单。

【讨论】:

【参考方案2】:

在路线使用结束时:

 $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>

【讨论】:

【参考方案3】:

你可以像这样使用 $locationProvider

$locationProvider.html5Mode(
  enabled: true,
  requireBase: false
);

【讨论】:

以上是关于如何从angularjs中的url中删除'#'的主要内容,如果未能解决你的问题,请参考以下文章

从 AngularJS url 中删除片段标识符(# 符号)

在 .run 在路由中从 Angularjs 中的 url 中删除 #

Angular 2 从 URL 中删除哈希 (#)

如何使用AngularJS从ng-repeat中的数组中删除对象?

如何在AngularJS中使用过滤器从数组中删除项目?

更改 URL 而不删除 Angularjs 中的历史记录