2016-01-05 198 views
2

是否可以使用Angular本地存儲來保存AngularJS應用程序的狀態? 我創建一個基於相當簡單的信息的應用程序,具有相當多的內容,我希望能夠保存用戶當前「位置」,因此,如果他們關閉應用程序,然後重新打開後,應用程序在那個保存點開啓。保存AngularJS應用程序的狀態

我一直在試圖讓我的周圍cookies和本地存儲的頭,並查找相關的科目,但一直沒能找到任何關於這與AngularJS,jQuery的唯一。

+2

你應該使用本地存儲來實現這種目的而不是cookie,https://github.com/grevory/angular-local-storage –

+0

我已經使用了angular-local-storage(https://github.com/grevory/angular-local-storage)。我發現它非常穩定和有據可查。 – jbrown

+0

謝謝你們,我已經研究過這也並看着它節約的偉大工程,輸入文字,但它是保存,我掙扎在當前瀏覽狀態的實際能力。即,如果他們關閉該頁面並稍後重新打開,則會將它們帶回到同一個地方。將繼續挖掘! – damianchapsmith

回答

0

你解決了這個問題嗎?我解決它在以下三個步驟:

  1. 在角配置階段,其中我攔截權限我有 另外一個$transitions.onSuccess鉤。我聽所有 轉換成功和存儲當前狀態的名字 - 除非其登入或signout

    $transitions.onSuccess('*', function(trans) { 
        var currentState = trans.router.stateService.current.name; 
        if (currentState !== 'signin' && 
        currentState !== 'signout') { 
        $localStorage.storeState(trans.router.stateService.current.name); 
        } 
    }); 
    
  2. 在登入/驗證過程或任何地方,你檢查,如果用戶已通過身份驗證,您將用戶重定向到一些州和用戶重定向到以前的狀態

    var previousState = $localStorage.getState() || Authentication.redirectState; 
    
    if (Authentication.isAuthenticated()) $state.go(previousState); 
    
  3. 在存儲廠我刪除signout儲存狀態