我有一個路由應用程序,加載並正常工作,除了事實上我有一個* ngIf元素不會顯示在路由更改上,除非我重新加載頁面。我有一個服務類的標記變量,我將它存儲在本地存儲中,並且當令牌不爲空時,我想顯示我的註銷按鈕。如何在組件初始化後從服務中填充變量angular2
當網站加載時,它會將令牌值設置爲null,從而隱藏按鈕(預期行爲),但在登錄並查看guid令牌時,變量不會顯示令牌值,除非我重新加載頁面重新初始化頭部組件。
縮寫代碼如下。
Import { Component } from '@angular/core';
Import { globalService } from './shared/globalService';
@Component({
selector: 'header-ele',
template: ` <div *ngIf="loginToken != null"><button>logout</button></div>
<router-outlet></router-outlet>`
})
export class headerComponent {
loginToken:any;
constructor(globalService: globalService){
this.logonToken = globalService.getUser(); //this either returns null or a token string
}
}
然後,我有改變這一切工作正常路線的另一個組件
//I have all of my correct imports and all works
export class loginComponent {
login(){
// I pass login params and get success
this.globalService.setUser(returnedData.LogonToken)
}
}
而在globalService我設置logonToken = returnedData.LogonToken,但在我headerComponent按鈕不會顯示出來,除非我重新加載頁面。所以,我想知道是否有一種方法來重新初始化路徑更改成功上的headerComponent,以便在構造函數中從globalService獲取令牌,或者如果有更好的方法在globalService和headerComponent之間共享該參數。
由於從移動設備提交的簡短代碼,但應該明白。
仍在學習的角度2.