2016-09-17 60 views
0

我想我的AngularJS應用程序轉換爲角2通用應用程序(因爲服務器端渲染)。角2個通用 - 存儲全局變量

https://github.com/angular/universal-starter

現在我需要存儲這很容易在正常的角2級的應用程序(下面的鏈接PER)達到全局變量。

Angular 2 global variable

Angular 2 - Whats the best way to store global variables like authentication token so all classes have access to them?

有一件事你必須做的正常角2應用程序來實現,這是通過您的全球服務來引導。

我不認爲你可以做,在2角通用的應用程序,除非我失去了一些東西。

我要存儲用戶數據和跨應用程序使用它。就像在asp.net中的會話數據一樣。而加上這需要未做親子組件

來完成

我怎麼能存儲在角2通用的應用程序的全局變量?

感謝 法赫德Mullaji

+0

只需創建一個頂級服務。檢查我的答案方法1,這是你在尋找什麼:http://stackoverflow.com/a/39031152/1810391 –

+0

@JohnSiu看起來像我真正想做的事情。我將不得不將其整合到我的應用程序中,並查看它是如何工作的。謝謝 –

+0

如果它適合你,記得要upvote我的答案,大聲笑 –

回答

9

這是另一種方式來使用方法1我的回答在https://stackoverflow.com/a/39031152/1810391

共用一個數據結構,只是用一個硬編碼指數像所有組件global

globaldata.service.ts

import { Injectable } from '@angular/core'; 

interface ShareObj { 
    [id: string]: any; 
} 

@Injectable() 
export class GlobalDataService { 
    shareObj: ShareObj = {}; 
} 

app.module.ts(假設這是你的根模塊)

import { GlobalDataService } from './globaldata.service'; 
// 
// skip .. 
// 

@NgModule({ 
    // 
    // skip .. 
    // 

    provider:[GlobalDataService] 

}) 
export class AppModule {} 

any.component.ts

code: 
    import { GlobalDataService } from './globaldata.service'; 
    // 
    // skip .. 
    // 

    constructor(private gd: GlobalDataService){ 
     // This can be string, array or object 
     this.gd.shareObj['global']='data'; 
    } 
+0

在角4: 提供商:[GlobalDataService] –

+0

我想()'刪除'註銷exisitng數據,並將其被清除,但構造仍持有舊值時,我與其他帳號登錄。可能是什麼問題? – devN