2016-04-27 2 views
0

В IE9 моя угловая маршрутизация не работает, и она перенаправляет меня на все, что было до «#» хэштегов.Угловая маршрутизация ie9 error

mysite.com/#/info -> mysite.com

даже если я вручную удаляет/# из URL и попробовать еще раз, я все еще попадаю.

дописывает «#» на мой URL, потому что режим html5 использует History API, когда браузер поддерживает его, и возвращается к «hashbang» (#), если оно не поддерживается (например, IE9).

$locationProvider.html5Mode(true); 

$urlRouterProvider.otherwise("/"); 

$stateProvider 
    .state('statistics', { 
     url: "/path/:myId", 
     templateUrl: '../some/path/site.html', 
     controller: 'Ctrl' 
    } 
); 

смотрели на различные решения, такие как:

, но ни один из них работает для меня.

Я ищу решение без необходимости деактивировать html5mode. Кто-нибудь испытал подобную проблему и сумел исправить?

+0

см это решение: http://stackoverflow.com/questions/26140575/angularjs-ng-route-not-working-on-ie9-the-views-are-not-displayed –

+0

@TekriwalD уже добавлен метатег, ng-app в теле, нет консольных журналов:/это не проблема. –

ответ

0

В режиме HTML5 существует три ситуации, в которых тег A не переписан: из угловых документов - 1 Ссылки, содержащие целевой атрибут. Пример: ссылка 2 Абсолютные ссылки, которые указывают на другой домен Пример: link 3 Ссылки, начинающиеся с «/», которые приводят к различным базовым путем, когда база определяется Пример: link

Вы можете попытаться использовать глобальную директиву например, добавить target = '_ self' ко всем ссылкам без цели.

myApp.directive('a', [function() { 
return { 
    restrict: 'E', 
    link: function (scope, element, attrs) { 
     if (!attrs['target']) { 
      element.attr('target', '_self'); 
     } 
    } 
} 
}]); 
Смежные вопросы