1. 程式人生 > >angular 1.6 及以上路由無法跳轉問題

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