JavaScript-如何从angularjs的网址中删除“#”

我的网址:eDemo / admin / test / list /#/ list

我想要:eDemo /管理员/测试/列表

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作为参数.

这里是示例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>

另外请记住,不要像重定向,通过AJAX或任何地方提交表单那样在任何类型的URL中传递#.

上一篇:php-Laravel路线无法在生产中使用


下一篇:PHP-替代mod_expires设置到期标头?