angular 1.6 及以上路由无法跳转问题

angularjs1.6及后面的版本

经常在使用yeoman构建angularjs项目和没有使用yeoman构建的时候会出现路由无法跳转的问题

正确的路由应该为:


错误的路由为:


原因是因为angularjs1.6后会将地址栏

第二个开始及后面的/所拼的地址进行解析因此会出现路由错误的情况。

解决此问题只需要在配置路由的地方加上 $locationProvider.hashPrefix('');

即可解决路由地址错误的问题。

'use strict';
angular
.module('angularApp', [
      'ngAnimate',
      'ngCookies',
      'ngResource',
      'ngRoute',
      'ngSanitize',
      'ngTouch'
])
.config(function ($routeProvider,$locationProvider) {
    $locationProvider.hashPrefix('');
    $routeProvider
    .when('/', {
        templateUrl: 'views/main.html',
        controller: 'MainCtrl',
        controllerAs: 'main'
    })
    .when('/about', {
        templateUrl: 'views/about.html',
        controller: 'AboutCtrl',
        controllerAs: 'about'
    })
    .otherwise({
        redirectTo: '/'
    });
});

项目git地址:https://github.com/Chenghongchao/yeoman_angularjs_html.git

你可能感兴趣的:(angular 1.6 及以上路由无法跳转问题)