Обработка завершающих слешей в angularUI router

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

У меня есть приложение, которое может привести к тому, что пользователи будут вводить URL-адрес. В таких случаях нетрудно поверить, что пользователь может ввести косую черту. Например,

www.example.com/users/2 и www.example.com/edit/company/123

следует относиться так же, как

www.example.com/users/2/ и www.example.com/edit/company/123/

Это нужно сделать только для обработки маршрутизации URL на стороне клиента. Меня не интересует обработка косых черт в вызовах ресурсов / API. Меня интересует только обработка косой черты в браузере.

Поэтому я исследовал и нашел не так много ответов в сети. Большинство из них привело меня к разделу часто задаваемых вопросов по angular-ui router.

https://github.com/angular-ui/ui-router/wiki/Frequently-Asked-Questions

Здесь они говорят нам написать правило, которое я и хочу сделать, но оно, похоже, не работает, или, возможно, я делаю это неправильно.

Вот plunkr, где я добавил свой код.

http://plnkr.co/edit/fD9q7L?p=preview

Я добавил это в свой конфиг, остальная часть кода в значительной степени является основной вещью.

$urlRouterProvider.rule(function($injector, $location) {
  //if last charcter is a slash, return the same url without the slash
  if($location.$url[length-1] === '/') {
    return $location.$url.substr(0,$location.$url.length - 2);
  } else {
    //if the last char is not a trailing slash, do nothing
    return $location.$url;
  }
});

По сути, я хочу сделать косую черту необязательной, т. Е. Ее наличие или отсутствие в адресной строке не должно влиять на загруженное состояние.

Ответы на вопрос(5)

Ваш ответ на вопрос