habruff
@habruff

Ангуляр 1.x Как заставить $routeProvider игнорировать ссылки с заглушками “#”?

Проблема с выпадающим меню от Bootstrap. При клике на дропдаун пункт меню joxi.ru/n2YkVqquo46Bzr срабатывает правило otherwise
$locationProvider.hashPrefix('!');
$routeProvider.otherwise({redirectTo: '/main'});

и соответственно показывает view главной страницы.

В ссылке выпадающего меню стоит заглушка href="#"
Как побороть это и заставить игнорировать заглушки? Нужно будет использовать также слайдеры, там будет такая же проблема...

angularjs angular-routing
  • Вопрос задан
  • 125 просмотров
Решения вопроса 1
zoonman
@zoonman
⋆⋆⋆⋆⋆
Вам нужно слушать событие $routeChangeStart и отменять действие.

$rootScope.$on('$routeChangeStart', function(event, next, current) {
 // добавьте здесь свою проверку на пустой hash и вызовите отмену 
  event.preventDefault();

});

Рекомендую внимательно прочесть https://docs.angularjs.org/api/ngRoute/service/$route
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

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

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