這是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自動註冊 –