2017-04-25 23 views
1

我正在開發一個帶有angularjs的SPA。如果應用程序中有兩個頁面,請將它設爲A和B.目前我在頁面A,並且已經在頁面上執行了一些操作(如過濾,搜索等),然後導航到頁面B並再次回到頁面A.但是,當我回來時,在頁面A上完成的所有操作應該保持不變(所有的過濾器,搜索操作應該持續下去,如何可能)?如何在angularjs中保存視圖

+0

取決於「其他頁面」的含義。請提供更多更具體的細節。請參閱[問] ...和... [mcve] – charlietfl

+0

定義「完成的操作」...您是否在討論提取該視圖上顯示的數據?你是否在談論像複選框或選擇一樣保存用戶體驗狀態?這是一個非常廣泛的問題,任何人都可以在當前狀態下回答 – jusopi

+0

我想你可以將範圍數據保存在localstorage中,並且在加載該頁面時檢查該值是否在localstorage中並將其加載到範圍。 –

回答

0

也許你可以做的是保存你需要的路線參數去創建一個狀態,像這樣的價值觀:

.state(state1, { 
    url: '/state1', 
    params: {'paramters': null}, 
    controller: 'controller', 
    }) 

然後,您可以用它在你的控制器,以恢復您的視圖不管它是什麼從之前是這樣的:$stateParams.paramters

要保存「當前視圖」,你也可以告訴角到默認情況下不緩存您的看法:

 .state(state1, { 
     url: '/state1', 
     params: {'paramters': null}, 
     cache: false, 
     controller: 'controller', 
     }) 

這將麥e Angular每次都會重新運行您的控制器代碼。

我希望這是有用的。

+0

應該提到,答案假設op使用ui路由器。請注意,緩存不會存儲模型狀態 – charlietfl

+0

這是真的。但是這個概念是一樣的 – MatTaNg

+0

不僅價值觀,但我想要完全相同的頁面與所有以前的操作。 –