2
我有角2服務調用JwtService.ts
用於檢查JWT令牌並在我的不同組件中使用它以便知道用戶是來賓還是登錄成員。Angular 2服務初始化邏輯
每次服務啓動時,我都會從我的LocalStorage
中獲得令牌,但由於某些原因,它正在尋找它3次(每次使用該服務的組件),並且我非常確定它只能被修復一次適用於所有組件。
看我JwtService.ts:
export class JwtService {
private jwtToken = localStorage.getItem("jwt");
public myData = this.getUserData();
constructor(public router: Router,private http: Http) {
}
getToken() {
return this.jwtToken;
}
setToken(theToken)
{
localStorage.setItem('jwt', theToken);
this.jwtToken = localStorage.getItem("jwt");
}
logOut()
{
this.jwtToken = null;
localStorage.removeItem("jwt");
this.router.navigate(['Home']);
}
getUserData()
{
console.log("Getting user..");
this.http.get('http://localhost/PokemonAPI/public/api/v1/thisUser?token='+this.getToken())
.map((res:Response) => res.json())
.subscribe(
data => {this.myData = data.user;
console.log()
},
err => {
this.JwtService.checkToken(err);
console.error(err); },
() => console.log("User logged!");
);
}
getUser()
{
return this.myData;
}
}
是的,它的工作原理,但如果我檢查我的瀏覽器控制檯我看到這下面的代碼:
這意味着瀏覽器加載服務3次,並在一次運行中使用我的HTTP GET 3次。 這是什麼原因造成的?
謝謝大師Angular 2! – TheUnreal