在Angular 2中替换Angular的$ rootScope?

时间:2017-02-03 07:32:21

标签: angular typescript

我正在Angular 2中创建一个演示应用程序,我坚持使用此应用程序。我想在整个应用程序中使用全局变量/对象,例如角度为$rootScope。请建议我该怎么做才能实现这个目标? 目前,我正在使用EventEmitter

app.component.ts:

<a routerLink="/admin" routerLinkActive="active" style="float:right;"
    *ngIf="currentUrl != '/admin'" (adminUrl)="setUrl($event)"  >Admin-{{currentUrl}}</a>

 `@Output()  adminUrl:String;` 

heroes.component.ts:

  @Output() adminUrl = new EventEmitter();
  this.adminUrl.emit(this.router.location.path());

上面的代码并不是所有代码,这是为了理解我正在做的事情。

1 个答案:

答案 0 :(得分:1)

您可以使用localStraogeService在整个应用程序中使用全局变量/对象 首先,您必须通过

在项目中安装localStorage
npm install angular-2-local-storage

然后将其导入baseComponent(如果有)

import { LocalStorageService } from 'angular-2-local-storage';

然后只注入BaseComponent的构造函数

constructor(protected localStorageService: LocalStorageService) 

然后您可以通过

获取并设置localStorageService的值
this.localStorageService.set('sessionData',{Object});

并通过

获取
 this.seesionDetails = this.localStorageService.get('sessionData');

您还可以按照以下链接中的内容来实现localStorageServices

https://www.npmjs.com/package/angular-2-local-storage