【问题标题】:Why is this AngularJS routing broken when html5mode is enabled?为什么启用 html5mode 时这个 AngularJS 路由会被破坏?
【发布时间】:2014-04-27 04:32:17
【问题描述】:

我想使用 AngularJS 路由。我使用 AngularJS-seed-master 作为开始,默认情况下路由工作。但是,在我启用 html5mode 后它停止工作。下面是路由工作时的html代码;

  <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>

路由工作时的 JavaScript 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'});

}]) 

然后,我通过将其添加到 app.js 来启用 html5mode

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

此时 AngularJS 路由停止工作。我做错什么了?启用 html5Mode 后如何使 AngularJS 路由工作?

【问题讨论】:

标签: javascript angularjs html url-routing angular-routing


【解决方案1】:

你要做的是在“app.js”中将“html5mode”设置为true:

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

链接可以显示性感地址。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-11-21
    • 1970-01-01
    • 2016-08-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多