2017-06-19 50 views
0

下面的代碼用於登錄功能。在這個迴應中,我得到了特定用戶的全部數據。我想存儲當前用戶的全部數據,並將其用於編輯配置文件的其他頁面。我要商店響應並全球使用

login(username: string, password: string): Observable<boolean> { 
    var body = 'username=' + username + '&password=' + password; 
    var headers = new Headers(); 
    headers.append('Content-Type', 'application/x-www-form-urlencoded; charset=UTF-8'); 
    let options = new RequestOptions({ headers: headers }); 
    return this.http.post(this.loginUrl, body, options) 
     .map((response: Response) => { 
      let success = response.json() && response.json().success; 
      if (success) { 
       this.token = success; 
       user logged in between page refreshes 
       localStorage.setItem('currentUser', JSON.stringify({ username: username, token: success })); 
       return true; 
      } else { 
       return false; 
      } 
     }); 
} 
+0

您可以將它存儲到'$ rootScope'中,儘管有些人可能認爲這是邪惡的。 –

+0

請簡要解釋@Tim Biegeleisen – Krunal

+0

https://stackoverflow.com/questions/18880737/how-do-i-use-rootscope-in​​-angular-to-store-variables –

回答

0

看到一點TypeScript,我相信這是角(不AngularJS,雖然不知道)。

使用Angular,您可以通過創建服務並在模塊級別提供程序中提供服務來實現此目的。

在你app.module.ts,註冊服務爲:

@NgModule({ 
     imports: [BrowserModule, FormsModule, HttpModule ], 
     declarations: [AppComponent], 
     bootstrap: [AppComponent], 
     providers: [ 
      MyGlobalService 
     ] 
}) 

創建該服務並注入在相應component/service/directive在您login功能的依賴。在接收到數據後一次,就可以將其存儲到服務,如:

if (success) { 
      this.token = success; 
      user logged in between page refreshes 
      localStorage.setItem('currentUser', JSON.stringify({ username: 
      username, token: success })); 
      this.myGlobalService.setUserData(response); 
      return true; 
     } 

當然,你將必須實現在服務setUserData功能。像:

@Injectable() 
export class MyGlobalService{ 

private userData :any; 

    setUserData(data){ 
    this.userData = data; 
    } 

    getUserData(){ 
    return this.userData 
    } 
} 

一旦你有一個像你上面應該能夠在你的應用無處不在注入MyGlobalService,並使用類似服務的實例應該得到的數據設置:

let userDataStored = this.myGlobalServcie.getUserData(); 

希望它可以幫助。