2014-09-28 3 views
0

Я устанавливаю режим HTML5. И таким образом, ссылки в шаблоне написаны без hashbang как:
Установить ссылки для возврата к hashbang для старых браузеров

<a ng-href='/link/to/action'>Click here</a> 

Но проблема в том, более старые версии IE нужны hashbang URLs и я знаю, что angularjs будет резервными для IE в hashbang.
Но я уже формирую ссылки в соответствии с HTML5. Как отменить мои собственные ссылки на hashbangs?

Другими словами, Я хочу, чтобы мои ссылки в шаблоне отображали тип режима (HTML5 или хеш-бэнд) и задавали его href соответственно.

Таким образом, для старых браузеров, я хочу ссылку быть, как это вместо:

<a ng-href='/#/link/to/action'>Click here</a> 

ответ

1
$locationProvider.html5Mode(false); 

Добавьте это к вам app.config функцию, она будет отключить режим html5 и включить окрошка #

, если вам нужно ! также добавьте это слишком

$locationProvider.hashPrefix('!'); 

Ex:

angular.module('yourApp', ['ngCookies', 'ngResource']) 
    .config(function($stateProvider, $urlRouterProvider, $locationProvider){ 
     $locationProvider.html5Mode(false); 
     $locationProvider.hashPrefix('!'); 
    }) 

EDIT: Для проверки HTML5 вы можете включать modernizer.js библиотеку, или использовать примеры кода, которые они обеспечивают

Вот некоторые методы, которые можно использовать, чтобы найти браузер поддерживает Html5 или не

http://diveintohtml5.info/detect.html#geolocation

Ex:

if (Modernizr.geolocation) {  
    $locationProvider.html5Mode(true); 
} else { 
    $locationProvider.html5Mode(false); 
} 
+0

Это поведение по умолчанию. Я устанавливаю его в положение ВКЛ, чтобы включить его, я знаю. Но я хочу, чтобы он был выключен для более старых версий браузера вместе с соответствующими типами ссылок в моем шаблоне, которые указывают на правильный режим для каждого типа браузера. –

+1

Здесь у вас есть объяснение режимов маршрутизации в Angular http://stackoverflow.com/questions/16677528/location-switching-between-html5-and-hashbang-mode-link-rewriting – Teq1

+0

Проверьте мои настройки, вы можете использовать modernizr.js для обнаружения браузера html5 – Vamsi

Смежные вопросы