Ich habe einen Dienst erstellt, um nach Benutzer-Token zu suchen.Angular 2 - Routing im Dienst
Wenn das Token nicht abgelaufen ist, nichts tun. Wenn es abgelaufen ist, leiten Sie ihn auf die Anmeldeseite um.
Mein Service.ts entsprechenden Code:
checkToken(myError) {
if (myError.json().error == "token_expired")
{
console.log("Your token has expired.");
this.router.navigate(['Login']); //Returns error
} else {
console.log("Do nothing");
}
}
Das Problem
EXCEPTION: TypeError: Cannot read property 'navigate' of undefined
Mein Service.ts
import {Component,Injectable} from "angular2/core";
import {Router} from 'angular2/router';
@Injectable()
export class JwtService {
private jwtToken = localStorage.getItem("jwt");
constructor(public router: Router)
getToken() {
return this.jwtToken;
}
checkToken(myError) {
if (myError.json().error == "token_expired")
{
console.log("Your token has expired.");
this.router.navigate(['Login']);
} else {
console.log("Do nothing");
}
}
}
Mein ROUTER_PROVIDERS
in meinemistDatei:
bootstrap(AppComponent, [
JwtService,
HTTP_PROVIDERS,
ROUTER_PROVIDERS
]);
Warum kann ich dann nicht von meinem Dienst aus navigieren?
sein Sieht aus wie Sie '@Injectable haben()' auf der Komponente, die redundant ist. –
Sie injizieren den 'Router' in' AppComponent', verwenden ihn jedoch in Ihrem Dienst. Haben Sie den 'Router' auch in den Dienst injiziert? –
Ich benutze es bereits in meiner 'AppComponent', aber jetzt muss ich es auch in meinem Dienst verwenden. Der Code in meinem Beitrag stammt von meinem Dienst. – TheUnreal