2016-09-17 55 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