2015-09-01 11 views
0

我正在研究角項目的一小部分,並需要定義從數據庫中的值派生的一些常量。我有一個REST端點提供我需要的數據,但我無法弄清如何在應用程序自動引導之前加載這些值。從網絡服務加載常量而無需使用解析或手動引導應用程序

我無法將應用程序修改爲手動引導過程。通常會在導航時使用解析,但我有其他組件(如模態)使用常量,而這些常量不一定是任何路徑的一部分。

什麼是理想的將是某種「解決」,但在應用層。我確實有能力加載npm和bower軟件包,但是任何改變爲「手動」引導方法的軟件都是不允許的。

+0

你可以擁有一個根狀態併爲你的所有值設置解析 –

+0

@NewDev - 這不是一個壞主意。現在只有一個狀態需要這些常量,所以我正在對我的路由的resolve部分中的常量進行加載服務調用......因爲所有使用常量的模態等只能從我的one-狀態,不會有任何問題。我冒着應用程序擴展的風險,並且從別的地方調用這些模式,並且沒有加載常量,但是當我到達那裏時我會穿過那座橋。 似乎在應用程序啓動之前解決問題的唯一方法是不自動引導應用程序。 –

回答

0

在這種情況下,我可以推薦你使用$ rootScope。我不太瞭解您的需求,但存儲在$ rootScope中的所有內容都將在所有視圖中提供。只需在您的應用的第一個或主視圖中填充REST服務即可。雖然,重要的是要明白,如果刷新頁面,$ rootScope將會被刷新,這是所有REST調用都會重新啓動。 (在角度視圖內導航不會刷新頁面,除非您使用window.reload()或類似方法請求它;它與新控制器只是相同的頁面)

要避免最後一個行爲(頁面刷新),您可以也使用本地存儲,這基本上是您的瀏覽器內的少量內存,您可以保存任何您想保留的數據,而不管您的頁面刷新。我在我的一個項目中使用了這個庫:https://github.com/grevory/angular-local-storage

這對保存永久性東西非常有用,直到用戶註銷。

希望它有幫助!對不起,如果我回答對你沒有用的東西 乾杯

+0

謝謝,但這並不能解決我的問題。我的問題是延遲應用程序從常規從其餘服務加載之前移到第一個視圖。加載數據後訪問數據不是問題 - 一旦數據加載完畢,我就可以在角度服務中爲任何需要它的人提供服務。 –

0

看起來應用程序啓動之前有效地從服務中加載一些值的唯一方法是進行服務調用,然後手動引導應用程序。似乎並不存在應用程序範圍的「解決方案」的想法。

相關問題