Как в AngularJS использовать реальные URL-адреса вместо hash (якорей, после «#»)

2013-07-08

AngularJS действительно позволят избавится от хэша в адресной строке, и эмулировать настоящие переходы по страницам с помощью новоиспеченных возможностей javascript в браузере history.pushState().

С как не странно — сделать это очень просто.
Нужно только установить html5Mode в «true» для $locationProvider:

$locationProvider.html5Mode(true);

Пример использования:

angular.module("MyApp", [])
.config(['$routeProvider', '$locationProvider',
function($routeProvider, $locationProvider) {
// Подходящее место для добавления этой строки
$locationProvider.html5Mode(true);
$routeProvider
.when('/', {
templateUrl: '/templates/index.html',
controller: IndexCtrl
})
.when('/about', {
templateUrl: '/templates/about.html',
controller: AboutCtrl
})
.otherwise({redirectTo: '/about'});
}]);

Примечание: Обратите внимание, что это может привести к проблемам в старих веб-браузерах.



Добавить комментарий