AngularJS路由#!问题

时间:2017-01-26 18:12:26

标签: angularjs routing

此问题之前已得到解答,但可能是早期版本的Angular。我在Angular 1.6.1工作。 HTML5并没有添加#!到网址,但我的部分没有加载。

HTML:

<head>
...
<base href="localhost/test/angular/Jan102017">
...
<head>
<body>
...
<ul class="nav navbar-nav navbar-right">
<li><a href="/"><i class="fa fa-home"></i> Home</a></li>
<li><a href="/second"><i></i> Second</a></li>
</ul>
...

JavaScript的:

var myApp = angular.module('myApp', ['ngRoute']);

myApp.config(['$routeProvider', '$locationProvider', 
function ($routeProvider, $locationProvider) {

$routeProvider
.when('#/', {
    templateUrl: 'pages/main.html',
    controller: 'mainController'
})

.when('#/second', {
    templateUrl: 'pages/second.html',
    controller: 'secondController'
})

.when('#/second/:num', {
    templateUrl: 'pages/second.html',
    controller: 'secondController'
})

$locationProvider.html5Mode(true);

}]);

1 个答案:

答案 0 :(得分:0)

将所有这些when('#/' ...更改为when('/' ...因为您使用html5Mode true

并且在角度1.6版本$locationProvider.hashPrefix('!');是默认值,因此将其更改为

$locationProvider.html5Mode(true);
$locationProvider.hashPrefix('');