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

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

Похожие вопросы