Hallo Ich benutze localStorage in Angular2.Angular2 Versucht, localStorage global zu verwenden, funktioniert aber nicht?
Um zu überprüfen, ob der Benutzer angemeldet ist, ich diesen
this.currentUser = JSON.parse(localStorage.getItem('currentUser'));
in jeder Komponente zu nennen versucht, aber da dies sollte in jeder Komponente aufgerufen werden,
Ich beschloss, es mich global machen so Service erstellt
import { Injectable } from '@angular/core';
import { User } from '../../model/auth_user';
import { HttpClient } from '../HttpClient';
@Injectable()
export class LoginCheckService {
constructor(private http: HttpClient) { }
LoginCheck(currentUser: User) {
currentUser = JSON.parse(localStorage.getItem('currentUser')); //to check if the user is logged in
if (currentUser == null) {
console.log('hello!') //just to check if the currentUser is null the 'get' method gets called, however, hello! is printed but i can't seem to track any request done.
this.http.get('/front/member/session');
}
}
}
Wie diese und in der Hauptkomponente habe ich dies getan.
currentUser: User;
constructor(private auth: AuthenticationService,
private router: Router,
private loginCheck: LoginCheckService) {
this.loginCheck.LoginCheck(this.currentUser);
}
Aber selbst wenn ich angemeldet bin, scheint die von der Hauptcurrent Komponente noch leer zu sein, was vorher nicht der Fall war, als ich mit Service war nicht.
Und ich fügte hinzu wenn if-Anweisung also, wenn der currentUser null ist, muss ich 'get' HTTP-Anfrage senden, aber das wird auch nicht angefordert.
Was mache ich falsch?
Vielen Dank.
(I hinzugefügt Service Provider)
Try 'currentUser' von' LoginCheck' Funktion zurückzukehren und dann lokale Variable Komponente zuweisen 'currentUser' – Ajax
In Ihrem Service LoginCheck, warum brauchen Sie Current Parameter? Du benutzt es nicht. In der nächsten Zeile setzen Sie es mit dem localStorage.getItem. – Hoyen