2

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

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

现在我需要存储可以在普通 Angular 2 应用程序中轻松实现的全局变量(根据下面的链接)。

Angular 2 全局变量

Angular 2 - 存储全局变量(如身份验证令牌)以便所有类都可以访问它们的最佳方法是什么?

要在普通的 angular 2 App 中实现这一点,您必须做的一件事是将您的全局服务传递给引导程序。

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

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

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

谢谢法赫德穆拉吉

4

1 回答 1

11

这是在https://stackoverflow.com/a/39031152/1810391使用我的答案的方法 1 的另一种方法

global要共享通用数据结构,只需像在所有组件中一样使用硬编码索引。

全球数据服务.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 {}

任何.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';
    }
于 2016-09-20T07:10:08.523 回答