AngularJS路由添加了任何特殊字符

AngularJS routes add any special characters?

本文关键字:任何 特殊字符 添加 路由 AngularJS      更新时间:2023-09-26

问题是:当我只是键入http://localhost:53379我被重定向到http://localhost:53379/#/。/#/从哪里来?

angular
        .module('app', ['ngRoute', 'ngStorage'])
        .config(['$routeProvider', function ($routeProvider) {
            debugger;
            $routeProvider.when('/:module/:task/:id/:menu/:action', { templateUrl: 'app/blank.html', controller: PagesCtrl });
            $routeProvider.when('/:module/:task/:id/:menu', { templateUrl: 'app/blank.html', controller: PagesCtrl });
            $routeProvider.when('/:module/:task/:id', { templateUrl: 'app/blank.html', controller: PagesCtrl });
            $routeProvider.when('/:module/:task', { templateUrl: 'app/blank.html', controller: PagesCtrl });
            $routeProvider.when('/:module', { templateUrl: 'app/blank.html', controller: PagesCtrl });
            $routeProvider.when('/', { templateUrl: 'app/start.html' });
            $routeProvider.otherwise({ redirectTo: '/' });
        }
    ]);

默认情况下,AngularJS将使用标签路由URL。

例如:

http://domain.com/#/home
http://domain.com/#/about

通过在config:中将html5Mode设置为true,您可以很容易地从URL中删除标签

$locationProvider.html5Mode(true);

因此,在您的代码中,它将是:

angular.module('app', ['ngRoute', 'ngStorage'])
       .config(['$routeProvider', '$locationProvider', function ($routeProvider, $locationProvider) {
            debugger;
            $routeProvider.when('/:module/:task/:id/:menu/:action', { templateUrl: 'app/blank.html', controller: PagesCtrl });
            $routeProvider.when('/:module/:task/:id/:menu', { templateUrl: 'app/blank.html', controller: PagesCtrl });
            $routeProvider.when('/:module/:task/:id', { templateUrl: 'app/blank.html', controller: PagesCtrl });
            $routeProvider.when('/:module/:task', { templateUrl: 'app/blank.html', controller: PagesCtrl });
            $routeProvider.when('/:module', { templateUrl: 'app/blank.html', controller: PagesCtrl });
            $routeProvider.when('/', { templateUrl: 'app/start.html' });
            $routeProvider.otherwise({ redirectTo: '/' });
            $locationProvider.html5Mode(true);
        }
    ]);

在那之后,如果你正在进行"单页应用程序">

,你必须确保你的备份会将所有请求重定向到你的主页

#默认设置为按角度路由,除非您在配置中设置了以下历史api pushstate:

    $locationProvider.html5Mode(true);

基本上angular默认使用hashchange进行路由。