2015-09-17 24 views
1

我在AngularJS應用程序中使用Spring rest作爲後端。我很新angularjs在AngularJS上保留瀏覽器刷新數據

我有一個用戶界面頁面,我在桌面上顯示一些對象列表。每個記錄都有一個編輯按鈕。當我點擊編輯時,會打開另一個頁面來設置相應的數據。

問題是,在編輯頁面上,如果我refresh the browser,我丟失了我的數據。我可以考慮的一種方法是再撥打rest電話,但我想避免撥打任何其他電話。

有沒有什麼辦法保留頁面上的數據刷新或進行休息調用是更好的解決方案?

+0

如果你想保留的數據相對簡單(例如一個id),你可以嘗試使用[$ location.search](https:// docs。 angularjs.org/api/ng/service/$location) – tcooc

+0

不僅id,應該顯示在頁面 – Anand

回答

1

我認爲最乾淨的方法是做一個REST調用,因爲數據可能在服務器上發生了變化。但是,如果您想避免通話,您可以使用localstorage。只需使用鍵值對將數據存儲在localstore中的表中(爲每一行分配一些唯一鍵)。你可以使用這個插件:Angular LocalStorage

+0

上的整個對象謝謝!!但爲什麼使REST調用將是最乾淨的方式?假設在編輯之前我在頁面上有一些值'x',當我刷新頁面時,由於再次調用REST,它可能會變成'y',因爲其他用戶可能已經更新了值。所以,它可能會讓用戶感到困惑......它有道理嗎? – Anand

+0

你的意思是y的值已被用戶編輯爲x?在這種情況下,用戶可能需要從服務器獲得最新值,因此需要刷新?如果其他客戶端上的其他人將該值從x更改爲y,那麼向用戶顯示一個非陳舊值不是更好嗎? – Aneesh

+0

,但在只讀屏幕上,即單擊編輯之前..用戶看到值x,他決定將值更改爲y,所以他點擊編輯並導航到編輯屏幕......他改變了值從x到y,但之前他可以提交,他刷新瀏覽器..如果在其他用戶之間已經更新值爲y,他會感到困惑,即使他沒有更新它,它是如何變成y的。 – Anand