gpt4 book ai didi

angular - 在 Angular 2 中创建全局服务变量

转载 作者:太空狗 更新时间:2023-10-29 17:44:31 25 4
gpt4 key购买 nike

如何在 Angular 2 中将服务中的变量作为全局变量,以便两个不同的组件可以访问和修改它?

public myMap : Map<string, string> = new Map<string, string>();

这是服务中的 map ,我最初使用一个组件填充它。现在,在应用程序运行一段时间后,我需要使用不同的组件访问相同的填充 map 。我该怎么做?

当我使用另一个组件访问 map 时,它显示为未定义。

最佳答案

在所有组件之间共享服务。在服务内部,声明一个变量,该变量将保存您要在组件之间共享的值。然后使用 getter 和 setter 从服务分配、检索或修改变量,而无需调用服务器。

这是一个简单的 example在多个组件之间共享一个变量。

shared.service.ts:

import { Injectable } from '@angular/core';

@Injectable()
export class AppService{
myGlobalVar;

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

setMyGV(val: boolean){
this.myGlobalVar = val;
}

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

app.module.ts中添加服务提供者:

@NgModule({
...
providers: [ AppService ],
bootstrap: [ AppComponent ]
})
export class AppModule { }

component.ts 中注入(inject)服务并使用它来设置、检索或修改变量。

constructor(private appService: AppService) { }

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

showGV(){
alert("GV: " + this.appService.getMyGV());
}

关于angular - 在 Angular 2 中创建全局服务变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45480311/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com