2016-04-13 13 views
4

Seit der letzten Angular2-Version (2.0.0-beta.14) ist es möglich, Abfrageparameter zu verwenden, die mehrere Schrägstriche enthalten, wie/foo/bar.Angular2 RouterLink unterbricht Routen durch Ersetzen von Schrägstrich durch% 2F

Das funktioniert gut, aber immer wenn ich einen Parameter mit mehreren Schrägstrichen innerhalb einer RouterLink-Verbindung verwende, entgeht es der / mit %2F, was dazu führt, dass die Routen beim Nachladen nicht mehr funktionieren.

Meine Link sieht wie folgt aus: <a [routerLink]="['/Page', {page: page.url | slug}]" class="list-group-item">{{ page.title }}</a>

Innerhalb des ‚Slug‘ Rohr ich auch URIDecode die Saite, und wenn ich es log ist es richtig. Es würde etwas wie /pages/level-1/ protokollieren, aber wenn ich das tatsächliche a Tag auf der Seite überprüfe, sagt es href="/pages%2Flevel-1".

Ich bin ziemlich ratlos, denn selbst wenn ich den Wert {{ page.url | slug }} innerhalb meiner HTML-Vorlage drucke, gibt es die URL mit Schrägstrichen zurück.

+1

Ich denke, man sollte einen Fehlerbericht in http://github.com/angular, wenn möglich, mit einem Plunker zu schaffen, der das Problem demonstriert. –

+0

Danke, ich werde morgen eine neue Ausgabe erstellen. –

Antwort

3

So fand ich die Lösung dank der Angular2 Issues Seite auf Github (danke Günter!).

wurde Meine Route wie folgt konfiguriert: ({ path: "/:page", component: Page, name: "Page" }), sondern sollte ({ path: "/*page", component: Page, name: "Page" }), Unterschied ist die * Wildcard vor page gewesen.

Dies ist die Frage, die ich erstellt habe: https://github.com/angular/angular/issues/8049

+1

Simon Green (Captain Codeman) ist immer eine große Quelle des Wissens! –

Verwandte Themen