Angular 2 通用 - 存储全局变量

Angular 2 Universal - Store Global Variables

我正在尝试将我的 AngularJS 应用程序转换为 Angular 2 通用应用程序(因为服务器端渲染)。

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

现在我需要存储全局变量,这可以在普通 Angular 2 个应用程序(按以下链接)中轻松实现。

要在正常情况下实现这一点,您必须做的一件事 angular 2 应用程序是将您的全球服务传递给 bootstrap。

我不认为你可以在 Angular 2 通用应用程序中做到这一点,除非我遗漏了什么。

我想存储用户数据并在应用程序中使用它。就像 asp.net 中的 Session 数据一样。而且这需要在不制作父子组件的情况下完成

如何在 Angular 2 Universal App 中存储全局变量?

谢谢 法赫德·穆拉吉

这是使用我在

中回答的方法 1 的另一种方法

要共享通用数据结构,只需在所有组件中使用硬编码索引,如 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';
    }