Ich benutze angular 2.0.0
und ich habe eine URL wie folgt aus:Angular2.0.0 - erhalten die Query-String (mit?) Von url Hashtag Standortstrategie
http://localhost:4200/?sptoken=MY_TOKEN#/resetPassword/
ich MY_TOKEN
von ihm erhalten möchten. Ich habe alles versucht, was ich hier finden konnte, aber ich bekomme nur "undefined
".
Das zweite Problem ist, dass ich Hashtag-Location-Strategie verwenden und wenn ich auf die URL so zugreifen wird es in http://localhost:4200/#/resetPassword/ (die Abfrage Zeichenfolge ist weg), der einzige Zeitpunkt, wenn ich auf dieses Token zugreifen konnte, ist in der Hauptkomponente zuvor Es wird transformiert, aber ich weiß nicht, wie ich es bekommen soll. Die meisten Dinge, die ich gefunden habe, beziehen sich auf die Abfrageparameter der Matrixnotation.
Haben Sie Vorschläge, wie ich das lösen kann?
Dies ist mein Code:
export class ResetPasswordComponent implements OnInit {
constructor(private route: ActivatedRoute) {
console.log(this.route.snapshot.queryParams['sptoken']); // when i don't use
//HashLocationStrategy it logs the token
}
}
export class AppComponent implements OnInit {
constructor(private router: Router, public configService: ConfigService, private cookieService: CookieService,private route: ActivatedRoute) {
console.log(this.route.snapshot.queryParams['sptoken']);
}
}
Und meine Routen:
const appRoutes: Routes = [
{path: UrlPaths.HELLO, component: HelloComponent, canActivate: [PrivatePageGuard]},
{path: UrlPaths.LOGIN, component: LoginComponent},
{path: UrlPaths.MAIN_PAGE, component: AppComponent},
{path: UrlPaths.FORGOT_PASSWORD, component: ForgotPasswordComponent},
{path: UrlPaths.RESET_PASSWORD, component: ResetPasswordComponent}
];
export const appRoutingProviders: any[] = [];
export const routing: ModuleWithProviders = RouterModule.forRoot(appRoutes);
export const UrlPaths = Object.freeze({
LOGIN: 'login',
HELLO: 'hello',
FORGOT_PASSWORD: 'forgotPassword',
RESET_PASSWORD: 'resetPassword',
MAIN_PAGE: ''
});
Ich habe auch unter Verwendung dieser URL den Token in der Hauptkomponente zu erhalten, um zu versuchen versucht: http://localhost:4200/?sptoken=MY_TOKEN#
aber es passiert das gleiche
'sptoken' setzen Sie es mit' queryParams' ??? – micronyks
ja, ich benutze eine externe API für die Authentifizierung und das Zurücksetzen des Passworts und sie senden mir das Token durch Abfrage params –