簡體   English   中英

Aurelia的全球應用狀況

[英]Global Application State in Aurelia

我正在嘗試將一個類注入我的Aurelia應用程序中的其他位置,以便在登錄后共享身份驗證狀態。 我正在關注這個例子http://hobbit-on-aurelia.net/appstate/但看起來在轉換期間范圍丟失或者它們是獨立實例。 Aurelia的文檔說:

默認情況下,DI容器假定所有內容都是單例實例;

當我從app實例設置路由器執行this.userSession.router = router ,userSession實例不會更新。 this.loggedUser總是從外部未定義。

這是我的傻瓜: http ://plnkr.co/edit/qXtSGx

如果您假設用戶會話是單例,則問題就在於此。 在您的示例中,用戶會話是視圖模板,它不是單例。 無論何時導航到視圖,這些都會被創建(在當前實現中,這可能會隨着緩存而改變)。 從視圖導航時,它們也會被破壞。

你想要的是一個獨立的類,你注入到視圖模型的構造函數中。

export class MyViewModel {
   static inject = [UserSession];
   constructor(userSession) {
       this.userSession = userSession;
   }
}

這將創建服務類UserSession的單例實例,即默認行為。 然后,容器將在創建視圖時將其注入視圖模型。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM