我有MainMenuComponent
帶有一些導航鏈接。 部分鏈接適用於簽名會員,部分適用於客人,部分適用於所有人。Angular 2 - 服務中的組件變量在視圖中沒有更改
我的主模板(master.html
)看起來是這樣的:
<main-menu></main-menu>
<div class="container">
<router-outlet></router-outlet>
</div>
我router-outlet
裏面,我有一個login component
。當我登錄時,我將我的JwtService.jwtToken
變量更改爲用戶令牌。 (服務變量)
這意味着,登錄後,我仍然可以看到「登錄」和「註冊」菜單鏈接:
<li *ngIf="!JwtService.getToken()" [class.active]="isRouteActive(['/Login'])"><a [routerLink]="['Login']">Login</a></li>
<li *ngIf="!JwtService.getToken()" [class.active]="isRouteActive(['/Register'])"><a [routerLink]="['Register']">Register</a></li>
<li *ngIf="JwtService.getToken()" [class.active]="isRouteActive(['/Fight'])"><a [routerLink]="['Fight']">Fight</a></li>
<li *ngIf="JwtService.getToken()"><a (click)="logOut()">Log Out</a></li>
爲什麼JwtService.getToken()是改變了我的<router-outlet>
但在它之外,在我的主菜單組件中,它沒有更新? (除非我刷新手動頁面)
**換句話說:當我的服務變量是使用jwtService.setToken("MY_TOKEN");
登錄後改變,我認爲下面的表達式沒有改變:
JwtService.getToken()
,它仍然空直到我刷新我的瀏覽器/路由**
這並不是很多的信息,你的應用程序正在發生什麼。你可以創建一個重擊者嗎? –
我的應用程序真的很大,我的問題有很多不相關的代碼部分。請讓我知道需要哪些信息來解決這個問題或獲得有關它的一般知識。我更新了我的帖子以獲取更多詳情。 – TheUnreal