Behandlung von nachgestellten Schrägstrichen im angleUI-Router

Es sind Stunden vergangen, seit ich angefangen habe, an diesem Problem zu arbeiten, und ich kann nicht scheinen, meinen Kopf um die Lösung zu bekommen.

Ich habe eine App, die dazu führen kann, dass Benutzer die URL tatsächlich eingeben. In solchen Fällen ist es nicht schwer zu glauben, dass der Benutzer einen abschließenden Schrägstrich eingeben könnte. Zum Beispiel,

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

sollte genauso behandelt werden wie

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

Dies ist nur für die Verarbeitung des URL-Routings auf der Clientseite erforderlich. Ich bin nicht daran interessiert, abschließende Schrägstriche in Ressourcen- / API-Aufrufen zu behandeln. Ich interessiere mich nur für die Behandlung von Schrägstrichen im Browser.

Also habe ich recherchiert und nicht viele Antworten im Netz gefunden. Die meisten von ihnen führten mich zum FAQ-Bereich des Angular-UI-Routers.

https://github.com/angular-ui/ui-router/wiki/Häufig gestellte Fragen

Hier fordern sie uns auf, eine Regel zu schreiben, was ich tun möchte, aber es scheint nicht zu funktionieren, oder vielleicht mache ich es falsch.

Hier ist der Punkt, an dem ich meinen Code hinzugefügt habe.

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

Ich habe dies zu meiner Konfiguration hinzugefügt, der Rest des Codes ist so ziemlich das grundlegende Zeug.

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

Grundsätzlich möchte ich den abschließenden Schrägstrich optional machen, dh das Vorhandensein oder Fehlen in der Adressleiste sollte sich nicht auf den geladenen Zustand auswirken.

Antworten auf die Frage(5)

Ihre Antwort auf die Frage