PR0metheus
@PR0metheus

AngularJs ngRoute почему не работают ссылки вида «#» и «/»?

Изучая AngularJs и ngRoute столкнулся с проблемой ссылки вида "#" и "/" не
обрабатываются ngRoute и не срабатывает переход на / даже при указании:
$routeProvider.otherwise({ redirectTo: '/' });
Последовательность действий:
  1. открываю сайт localhost:50056/ (Debug сессия visual studio с IIE Express)
  2. происходит переход на дефолтный путь localhost:50056/#/
  3. переход по ссылкам "/" и "#" не обрабатываются и в ng-view соответственно ничего не выводится, но сам angularjs работает - отображается пустая основная страница, дебаг ngRoute показывает что происходит переход с "/" в undefined

Это нормальное поведение и ссылки на / и # надо оформлять в виде "#/" или что то еще стоит почитать для понимания происходящего?

P.S.: странно но в MS Edge работает как я ожидаю - т.е. переходит на #/
  • Вопрос задан
  • 517 просмотров
Решения вопроса 1
Для выключенного html5 мода # используется ангуляром в качестве разделителя для $location(). На текущий момент браузеров без поддержки history API уже мало, так что можно смело включать html5 мод в ангуляре. Это сделает ссылки красивыми ( уберётся #).
Как включить:
1.https://docs.angularjs.org/api/ng/provider/$locati... метод html5Mode.
2. для сервера настроить редиректы на index.html. настройки для разных серверов
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы