Angular中的全局变量2

时间:2017-06-30 08:29:29

标签: angular

我正在构建一个基于Angular 2的应用程序。我希望有一个可以被所有组件访问和修改的全局变量。 我能找到的所有当前答案都是针对常数的。任何人都可以建议我怎么做? 谢谢!

1 个答案:

答案 0 :(得分:0)

当我必须处理全局变量时,我通常通过共享服务来处理它。我在根组件的服务中声明了一个变量,它通常是app.service.ts,并通过setter和getter函数使其可用于其他组件。

为了演示,我使用了一个有三个组件的英雄教程plunker。在app.service.ts我声明了变量myGlobalVar

我在所有其他组件中添加了按钮以更改myGlobalVar的值并随时查找其值。

您可以在此example

中找到互动详情

app.service.ts:

@Injectable()
export class AppService{
    myGlobalVar;

    constructor(){
      this.myGlobalVar = true;
      console.log("My global variable value: " + this.myGlobalVar);
      alert("My intial global variable value is: " + this.myGlobalVar);
    }

    setMyGV(val: boolean){
      console.log("Setting FV to: " + val);
      this.myGlobalVar = val;
    }

    getMyGV(val: boolean){
      return this.myGlobalVar;
    }
}

从组件访问和修改变量:

export class exampleComponent{
  constructor(private appService: AppService) {}

  changeGV(val){
      this.appService.setMyGV(val);
    }

    showGV(){
      alert("GV: " + this.appService.getMyGV());
    }
}
相关问题