这是an earlier question I posted的后续问题。如何在Angular 2+中存储常量?
我的问题是关于在服务上调用方法时出现的奇怪日志输出。 console.log
输出未打印服务明确定义的数据。事实证明,罪魁祸首是在调用服务方法时,使用的上下文是调用该组件的上下文。
所以我的问题是:在Angular 2+的多个组件中存储变量的正确方法是什么?
例如,假设我想保留一个变量isLoggedIn
。我在哪里保持这个变量?我无法将它保留在服务中,因为当组件调用该服务时(即authService.getLoggedInStatus()
),它们不会需要获取该服务的值,而是潜在地获取该组件中具有相同名称的变量的isLoggedIn
值。
那么你如何跟踪Angular中的共享变量?
为什么会“authService.getLoggedInStatus()”给同名变量的组件中的价值?这是一个有效的方法。 @Injectables是单身人士,适合存储值。 – omeralper
我个人在我的一个项目中使用了这种非常确切的方法,通过'BehaviourSubject'将所登录的用户数据存储在所有需要登录的''组件'调用的'Service'中;它工作得很好。此外,如果所有服务都“订阅”到一项服务中,则它具有优势,当它发生更改时,所有组件都会知道更改。 I.E注销由所有'subscribe'rs自动注册 –