将数据服务中的全局数据设置为可从所有组件访问

时间:2019-04-26 18:21:13

标签: angular

我正在尝试登录数据服务后保存访问令牌。 登录后,我在accessToken文件中设置了auth.service.ts,并尝试在另一个文件中访问此值。

data.service.ts

_accessToken: string;

getAccessToken(){
    return this._accessToken;
}
setAccessToken(accessToken: string) {
    this._accessToken = accessToken;
}

auth.service.ts

setSession(authResult) {
    this.dataService.setAccessToken(authResult);
    console.log(this.dataService.getAccessToken()); 
}

当我在this.dataService.getAccessToken()中打印auth.service时,我得到了正确的访问令牌。

现在,我尝试在其他组件中访问它,得到undefined

order.component.ts

ngOnInit() {
    console.log(this.dataService.getAccessToken());
}

以上结果为undefined

我不确定为什么会这样。

1 个答案:

答案 0 :(得分:1)

您的服务装饰者必须具有countdown(2): print(2) countdown(1) print(1) -> next recursion step print(2) print(1) countdown(0) print(0) print(1) -> next recursion step print(2) print(1) print(0) print(-1) print(0) print(1) 才能访问。

providedIn: 'root'

注意:〜当您在根级别提供服务时,Angular会创建一个共享的服务实例,并将其注入任何需要它的类中。在@Injectable()元数据中注册提供程序还允许Angular通过从未编译的应用程序中删除服务来优化应用程序。