Состояние Ui-маршрутизатора с параметром состояния не распознается при перезагрузке страницы

0

У меня очень странная ситуация с ui-router. У меня есть состояние, определенное так:

.state('profileQuestion', {
        url: '/profile-questions/:profileQuestionId',
        templateUrl: 'client/users/views/profile-question.ng.html',
        controller: 'profileQuestionCtrl'
 })

Он работает отлично и денди, когда я просматриваю приложение. Однако, если я перейду прямо к этой странице, например localhost:3000/profile-questions/1, приложение не распознает страницу и сразу же попытается перейти на otherwise маршрут.

$urlRouterProvider.otherwise('/login');

Что еще, на самом деле это относится к /profile-questions/login вместо просто /login ! Контроллер для вопросов профиля никогда не вызывается. Таким образом, этот ui-маршрутизатор отлично работает, когда я перехожу к странице из другого, но не удается, когда я загружаю страницу самостоятельно. Я должен добавить, что если я удалю параметры параметров состояния :profileQuestionId, маршрут /profile-questions загрузится правильно. Есть идеи?

  • 0
    Это проблема сервера, не угловая, не UI-Router - github.com/angular-ui/ui-router/wiki/…
  • 0
    Вы настраиваете приложение, чтобы быть в режиме HTML5?
Показать ещё 1 комментарий
Теги:
angular-ui-router

1 ответ

0

Как предположил @Radim Kohler и @Joe Lloyd, проблема в том, что режим HTML5 был включен. Теперь я вижу, что сервер думает, что я ищу что-то в каталоге /profile-questions/, которого нет. Чтобы исправить это, я просто изменил его как параметр строки запроса так:

.state('profileQuestion', {
        url: '/profile-question?profileQuestionId',
        templateUrl: 'client/users/views/profile-question.ng.html',
        controller: 'profileQuestionCtrl'
 })

Ещё вопросы

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