2017-02-13 66 views
1

重新加載我的AngularJS Web應用程序會清除我的$ rootScope。 如何以最簡單的方式存儲我的$ rootScope,以便在頁面刷新後生存下來?如何在頁面刷新後重新填充rootScope

感謝您的幫助!

+2

您可以將數據保存在瀏覽器的localStorage中。 – Natiq

+0

我可以保存完整的$ rootScope嗎? –

+0

請通過此鏈接更好地瞭解http://stackoverflow.com/questions/29849825/angularjs-why-page-refresh-destroy-the-values-of-rootscope – Dhiraj

回答

1

首先,讓我們來了解$ rootScope的功能。

The official angular documentation告訴我們,範圍,使用觀察者,提供了模型和視圖之間的明確分離。 $ rootScopeProvider是整個角度應用程序唯一的範圍:將其視爲可以從每個控制器,服務,工廠等訪問的共享對象。

您可以使用$ rootScope通過添加一個新的財產。該屬性將立即在所有注入$ rootScopeProvider的其他組件中提供,因爲它的觀察者。

現在,讓我們$ rootScope的你的使用情況,並嘗試去了解它:只要 的應用程序正在運行,編程屬性添加到$ rootScope將被填充,您可以使用該屬性的值你的應用程序中:

// ... 
$rootScope.property = true; 
// ... 

如果,不過,要動態填充$ rootScope與不打算被存儲爲$ rootScope屬性的對象和信息,這些將在接下來的時間沖走你刷新你的應用程序,因爲你沒有像以前的狀態那樣以編程方式重新創建相同的行爲。

人們根本不推薦使用$ rootScope,但是如果您真的需要使用它,請考慮一下使用情況。例如,如果您想在登錄時執行http POST,接收響應並將該響應存儲在全局變量中,那麼可能會有更好的服務(提供者)滿足您的需求 - 例如$ cookies,localStorage或者只是堅持數據庫中的數據。

+0

我想在用戶數據登錄後存儲在我的rootScope JsonObject。我試圖將它保存在sessionStorage中,但刷新頁面後,數據也消失了。 –

相關問題