[英]Angular - Lazy loading an entire page from CMS
我正在嘗試構建一個由名為Prismic.io的CaaS / CMS驅動的角度應用程序。
該項目的第一階段將是一個直接的內容 - 筒倉(CMS管理),第二階段將添加更復雜的Web應用程序組件。 知道了這一點,我認為Angular是我最好的選擇,但我很難想到一個很好的解決方案,讓所有內容都來自Prismic API。
我決定探索的一個解決方案是使用標准化的$ scope變量,我們稱之為$scope.loaded
。 每個控制器都會盡力查詢我的Prismic服務的相應內容,一旦完成,它將設置$scope.loaded = true
。
我堅持使用這種方法的部分是在所有這些組件加載時如何顯示頁面。 最簡單的方法是包含引用此loaded
值的ng-if
指令,但我覺得會有大量無格式內容。 是的,我可以使用微調器,但是在旋轉器中覆蓋90%頁面的想法似乎很奇怪。
然后我想知道:如果我為應用程序啟動加載屏幕,直到所有控制器的$scope.loaded
值都是真的,該怎么辦? 在這種情況下,我如何知道頁面上當前處於活動狀態的控制器並引用它們各自的范圍?
(如果你有關於為什么這種方法不好的評論,我很樂意聽到它們作為回復而不是答案。我想這可能會產生太多的http請求,例如)。
這里有幾個選項:
您是否看過ngCloak
,看看是否會幫助您解決閃爍問題? https://docs.angularjs.org/api/ng/directive/ngCloak 。
如果您正在使用jquery,那么您可以使用一個全局微調器來處理並發的ajax請求http://api.jquery.com/category/ajax/global-ajax-event-handlers/ 。
或者看看像這個全局角度微調器https://github.com/monterail/angular-global-spinner/tree/master/src 。
如果這些都不起作用,您可以始終在根作用域上創建一個數組,其中每個控制器/指令自我注冊並設置其加載標志。 然后向該變量添加一個監視,以查看該數組中的所有組件何時完成加載。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.