Сравнение $ location.path () для маршрутизации с неработающими параметрами

0

У меня есть приложение, в котором я должен разрешить пользователям без регистрации получать доступ к некоторым страницам, например, забыть форму пароля, регистрацию и т.д.

  if(!Authentication.isLoggedIn()){
    if($location.path() === '/thanks'){
      // Allow
    } else {
      // Redirect to login
      $location.path('/login');
    }
  }

Я использую ngRoute, и у меня есть маршрут с параметром в нем (/lostpassword/: токен), но я не могу найти способ правильно его сравнить, чтобы позволить ему так же, как я могу/спасибо

Поэтому, чтобы уточнить, я не ищу значение: токен, я просто хочу сказать, когда просматривается маркер /lostpassword/: токен.

Я действительно новичок в угловой, и я надеюсь, что это всего лишь небольшая проблема синтаксиса. Любая помощь будет оценена по достоинству.

  • 0
    Ты имеешь в виду, что хочешь ценность своего токена?
  • 0
    Возможный дубликат: stackoverflow.com/a/26100981/3103677
Показать ещё 1 комментарий
Теги:
angularjs-ng-route

1 ответ

1
Лучший ответ

Если вы хотите узнать, содержит ли URL ключевое слово, которое вы можете сделать:

var path = $location.path();
if (path.split('/').indexOf('some') > -1){
    // do something
}

Угловые $ location docs

РЕДАКТИРОВАТЬ

Вы также можете использовать угловой маршрутизатор, который может получить шаблон URL. это предпочтительный способ обработки маршрутов внутри вашего приложения.

  • 0
    Этот ответ помог мне продвинуться дальше, но я немного волнуюсь, что если бы у меня был другой маршрут, содержащий ключевое слово, то я мог бы предоставить публичный доступ на страницу, которую я не хочу. Но если нет другого пути, я приму это как правильный ответ.
  • 0
    Каковы различия между маршрутами? (кстати, я обновил ответ)

Ещё вопросы

Сообщество Overcoder
Наверх
Меню