在angular.js上使用HTML5 pushstate

我试图实现html5的pushstate而不是Angularjs使用的#导航。 我已经尝试search谷歌的答案,也尝试了没有运气,但angularirc聊天室。

这是我的controllers.js

 function PhoneListCtrl($scope, $http) { $http.get('phones/phones.json').success(function(data) { $scope.phones = data; }); } function PhoneDetailCtrl($scope, $routeParams) { $scope.phoneId = $routeParams.phoneId; } function greetCntr($scope, $window) { $scope.greet = function() { $("#modal").slideDown(); } } 

app.js

 angular.module('phoneapp', []). config(['$routeProvider', function($routeProvider){ $routeProvider. when('/phones', { templateUrl: 'partials/phone-list.html', controller: PhoneListCtrl }). when('/phones/:phoneId', { templateUrl: 'partials/phone-detail.html', controller: PhoneDetailCtrl }). otherwise({ redirectTo: '/phones' }); }]) 

注入$ locationProvider到你的configuration中,并设置$locationProvider.html5Mode(true)

http://docs.angularjs.org/api/ng.$locationProvider

简单的例子:

JS:

 myApp.config(function($routeProvider, $locationProvider) { $locationProvider.html5Mode(true); $routeProvider .when('/page1', { template: 'page1.html', controller: 'Page1Ctrl' }) .when('/page2', { template: 'page2.html', controller: 'Page2Ctrl' }) }); 

HTML:

 <a href="/page1">Page 1</a> | <a href="/page2">Page 2</a>