2014-04-27 70 views
0

我想使用AngularJS路由。我使用AngularJS-seed-master作为默认启动和路由工作。但是,启用html5mode后,它停止工作。以下是路由工作时的html代码;为什么在启用html5mode时这个AngularJS路由被破坏?

<ul class="menu"> 
    <li><a href="#/view1">view1</a></li> 
    <li><a href="#/view2">view2</a></li> 
    </ul>  
    <div ng-view></div> 
    <script src="lib/angular/angular.min.js"></script> 
    <script src="lib/angular/angular-route.min.js"></script> 
    <script src="js/app.js"></script> 
    <script src="js/services.js"></script> 
    <script src="js/controllers.js"></script> 
    <script src="js/filters.js"></script> 
    <script src="js/directives.js"></script> 

当路由工作时,Javscript app.js代码;

angular.module('myApp', [ 
    'ngRoute', 
    'myApp.filters', 
    'myApp.services', 
    'myApp.directives', 
    'myApp.controllers' 
]). 
config(['$routeProvider', function($routeProvider) 
{ 
    //configuration for $routeProvider 
    $routeProvider.when('/view1', {templateUrl: 'partials/partial1.html', controller: 'MyCtrl1'}); 
    $routeProvider.when('/view2', {templateUrl: 'partials/partial2.html', controller: 'MyCtrl2'}); 
    $routeProvider.otherwise({redirectTo: '/view1'}); 

}]) 

然后,我启用html5mode加入这app.js

.config(['$locationProvider', function($locationProvider) 
{   
    $locationProvider.html5Mode(true); 
}]) 

正是在这一点上,AngularJS路由停止工作。我做错了什么?在启用html5Mode之后,AngularJS路由如何工作?

+0

http://stackoverflow.com/a/23311886/189756 [$位置/ HTML5和hashbang模式之间切换/链路重写](的 –

+0

可能重复http://stackoverflow.com/questions/16677528/location-switching -between-HTML5和 - hashbang模式 - 连接 - 重写) – rvignacio

回答

1

,你所要做的就是在 “app.js” 设置 “html5mode” 为真:

config(['$locationProvider', '$routeProvider', function($locationProvider, $routeProvider) { 
    $locationProvider.html5Mode(true).hashPrefix('!'); 
    $routeProvider.otherwise({redirectTo: '/view2'}); 
}]); 

在index.html的标题下方添加:

<head> 
     <base href="/" /> 
     <meta name="fragment" content="!"> 
</head> 

,并更改链接:

<body> 
    <ul class="menu"> 
    <li><a href="/#!/view1">view1</a></li> 
    <li><a href="/#!/view2">view2</a></li> 
    </ul> 
</body> 

这就是它的主网址: http://localhost:8000

会重定向到: http://localhost:8000/view1

和纽带将努力展示性感的地址。

相关问题