2016-08-29 3 views
1

Ich arbeite an dem neuen Router mit RC.4, auf den http-Fehlercodes. Ich versuche, einen Parameter über die URL zu senden, aber ich habe einen „Charakter issue“ ...Angular2 - Router navigieren mit param (RC.4)

Hier ist mein Aufruf: this._router.navigate(['/error', { errorCode: '401' }]);

Und das ist die URL, die enthält ein „;“ anstelle einer "?" : http://localhost:3000/error;errorCode=401

Was ich will: http://localhost:3000/error?errorCode=401

Denn wenn ich diese URL lese, ist es nur mit diesem Werk "?" :

this._router.routerState.queryParams.subscribe(params => { 
     let errorCode = params['errorCode']; 
     ... 

(Optional - app.routes.ts):

{ 
    path: 'error', 
    component: ErrorComponent 
}, 

ich im Internet gesucht, aber nichts davon konnte nicht gefunden werden, wie kann ich das ändern ";" oder wie kann ich error;errorCode=401 lesen?

Antwort

2

Wenn Sie sie zu einer Root-Route hinzufügen, werden die Parameter als Abfrageparameter hinzugefügt (mit ?). Auf untergeordneten Routen werden sie als Matrixparameter hinzugefügt (;).

Wenn Sie es daher als Abfrageparameter hinzufügen möchten, müssen Sie sie den Root-Routen hinzufügen.

+0

Danke für die schnelle Antwort! Es gibt eine Möglichkeit, Matrixparameter in angular2 zu lesen? – lBrowz

+0

Sie funktionieren genauso wie (tatsächlich sind) Abfrageparameter, nur die Darstellung in der URL unterscheidet sich je nachdem, auf welche Route sie angewendet werden. –

+0

Was meinen Sie, indem Sie sie der Hauptroute hinzufügen? Meinst du das Registrieren von Routen in Submodulen mit RouterModule.forRoot()? –

0
let queryParams = { 
    status: 1, 
    string: 'abc', 
}; 
this._router.navigate(['/path'], { queryParams: queryParams }); 
+0

Vielen Dank für dieses Code-Snippet, das einige unmittelbare Hilfe bieten kann. Eine richtige Erklärung [würde erheblich verbessern] (// meta.stackexchange.com/q/114762) ihren pädagogischen Wert, indem sie * warum * dies eine gute Lösung für das Problem ist, und es für zukünftige Leser mit ähnlichen, nützlicher machen würde, aber nicht identisch, Fragen. Bitte [bearbeiten] Sie Ihre Antwort, um eine Erläuterung hinzuzufügen und geben Sie an, welche Einschränkungen und Annahmen gelten. –