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