Manipulação de barras à direita no roteador angularUI

Já se passaram horas desde que comecei a trabalhar neste problema e não consigo entender minha solução.

Eu tenho um aplicativo que pode resultar em usuários realmente digitando o URL. Nesses casos, não é difícil acreditar que o usuário possa inserir uma barra final. Por exemplo,

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

deve ser tratado da mesma forma que

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

Isso só precisa ser feito para lidar com o roteamento de URL no lado do cliente. Não estou interessado em lidar com barras finais em chamadas de recurso / API. Eu só estou interessado em lidar com as barras cortadas no navegador.

Então pesquisei e não encontrei muitas respostas na rede. A maioria deles me levou à seção FAQ do roteador angular-ui.

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

Aqui eles nos dizem para escrever uma regra, que é o que eu quero fazer, mas parece que não está funcionando, ou talvez eu esteja fazendo errado.

Aqui está o plunkr onde eu adicionei meu código.

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

Eu adicionei isso à minha configuração, o restante do código é basicamente o básico.

$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;
  }
});

Basicamente, quero tornar a barra à direita opcional, ou seja, sua presença ou ausência na barra de endereços não deve afetar o estado carregado.

questionAnswers(5)

yourAnswerToTheQuestion