关于控制器之间的共享状态。我很难找到权利的方式来解决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