Как заставить AngularJS UI-роутер работать, но игнорировать необязательную обратную косую черту в URL?

0

Я использую UL-маршрутизатор AngularJS для маршрутизации. В настоящее время у меня есть:

  $stateProvider.state('mystate',
    {
      url: '/mystate/{id:int}/:slug/',
      params: {
        slug: {value: null, squash: true}
      },
      templateUrl: 'partials/mystate.html',
      controller: 'MyStateCtrl'
    }
  );

Параметры id и дополнительных slug URL-адресов фиксируются, если существует обратная косая черта. Если нет обратной обратной косой черты, этот шаблон даже не согласован. Мне нужно, чтобы он соответствовал или не поддерживал обратную косую черту во всех случаях. Как я могу это сделать?

Мне сказали, что здесь, чтобы прикрепить следующий конфиг на моем приложении:

.config(['$urlMatcherFactoryProvider', function($urlMatcherFactoryProvider) {
      $urlMatcherFactoryProvider.strictMode(false);
    }
  ]
)

Я сделал. Но это все равно не работает без завершающих косых черт. Что мне делать?

  • 0
    Что если вы удалили косую черту из паттерна?
  • 1
    Если вам нужен необязательный параметр, почему бы вам не использовать параметры стиля запроса в конце маршрута? Вы можете закодировать их, если значение больше, чем простая строка.
Показать ещё 1 комментарий
Теги:
angular-ui-router

1 ответ

0

Параметры маршрута в UI Router по умолчанию не являются обязательными. Вот почему нужна косая черта. Я могу подумать о двух решениях, чтобы избежать косой черты, если кто-то не хочет использовать подход параметров запроса:

  1. Настройка другого маршрута для версии без parameterless.
  2. Использование параметров маршрута без url: это опустить параметр, который вы хотите быть дополнительным, и объявить его в атрибуте params но в этом случае необязательный параметр не будет отображаться в URL-адресе.

Пример кода:

$stateProvider
.state('mystate', {
  url: '/mystate/{id:int}',
  params: {
    slug: {value: null, squash: true}
  },
  templateUrl: 'partials/mystate.html',
  controller: 'MyStateCtrl'
})
  • 0
    Ваш код полностью повторяет мой фрагмент.
  • 0
    В большинстве случаев нам следует сосредоточиться на объяснении, а не на публикации полного функционального кода. Вот почему я намеревался дать объяснение, а не пример кода. ОП может легко выбрать ваш для лучшего понимания, если это поможет

Ещё вопросы

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