關於控制器之間的共享狀態。我很難找到權利的方式來解決SO上推薦的所有可能的解決方案。我用這個草圖來說明我到目前爲止使用工廠的基本想法。控制器之間的共享狀態 - angularjs
有工廠myFactory
,它擁有一個共享變量sharedVar
。
控制器Ctrl1, Ctrl2, Ctrl3
想要始終訪問更新版本。他們也可以致電updateViaHttp
。
那是一個工廠權目的是什麼? (一般的共享狀態, 具體到像服務提供商和其他選項)
如果是這樣,腕錶以適當的方式如何改變
sharedVar
的? (由 參考對象,$手錶,事件(廣播,上),...)- 是否有行之有效爲對象,數組和 元一個一般模式。
您給出的示例似乎只要updateViaHttp不返回對象就會工作。如果是這樣,我分配srvc.sharedVar = returnedObj它包含參考。真的嗎? – Stefan
你完全可以在服務中嵌套對象,唯一的竅門是你必須小心你如何看待這個值。我在那裏關於監視深度的鏈接更多地討論了這個問題,但基本上,當您更改屬性而不是對象時,可能會遇到問題,因爲該對象不會將自己標記爲「已更改」。同樣,您必須小心如何觀看服務的屬性,請參閱:http://stsc3000.github.io/blog/2013/10/26/a-tale-of-frankenstein-and-binding-to-service -values-in-angular-dot-js/Services只是你的整個應用程序使用的單例對象 –
無法讓它工作,它改變了視圖工廠狀態丟失。其不持久 – Stefan