我试图将一个布尔值从一个服务传递到其他服务文件,因为我得到的布尔值未定义,我在Angular 中没有找到任何与之相关的示例和文档,有人能指导我吗
需要从该文件传递一个布尔值:
Auth.service.ts
public Data: boolean;
passValueFunction(){
this.Data =true
}
在这个服务文件中,我需要从auth服务文件中获取布尔值(auth.service文件中数据变量)
second.service.ts
constructor(private authService: Authservice){
}
ngOninit(){
console.log(this.authService.Data)
}
在第二个服务文件中,我得到的数据值不是true。我希望在第二个服务文件中.authService.Data = true。我不知道为什么得到.authService.Data= undefined。
2条答案
按热度按时间t9eec4r01#
问题是关于你的
second.service.ts
的初始化早于函数:这里你可以有几个不同的解决方案,以防你期望从这个服务之间的通信。如果您需要仅在
Data
值更改为true
时触发second.service.ts
中的某个函数,我建议您在Auth.service.ts
中创建一个Observable
或BehaviorSubject
,并在second.service.ts
中订阅此Observable/BS
的值。htrmnn0y2#
下面是一个如何执行此操作的示例。
在service1.service.ts(或您的身份验证服务)中:
在服务2.service.ts(或您的第二个.service.ts)中:
在使用第二个服务的组件中:
我只使用第二个服务,第二个服务正在从第一个服务阅读数据bool,因此bool已被传递