为了账号安全,请及时绑定邮箱和手机立即绑定

Angular的controller和service、factory的问题

Angular的controller和service、factory的问题

烙印99 2019-04-13 08:36:12
如果我多个controller共享一份数据,是在某个比较上层的控制器上保存数据,还是用factory保存这个需要共享的数据,如果用service会怎么样。
查看完整描述

2 回答

?
慕斯王

TA贡献1864条经验 获得超2个赞

这个问题取决于你用数据的时候,这个数据的业务关联性在你的scope层级里到底有多强。
强,就是说你非常确定在某个scope用到它的时候,向上找一定可以找到某个父级scope,那就可以利用scope的继承性来共享。不过建议要用controlleras的语法给每一个controller唯一的命名空间以避免对象重名。实际上你甚至可以把这个数据保存在$rootScope来全局共享(但是不推荐,因为$rootScope越轻越好),或者是有一个最顶层的全局controller来保存也可以。
不强,就是说你无法确定何时何处会用到这个数据,那就用依赖注入咯。纯数据的话,建议用module.value(可变数据)或module.constant(不可变数据),当然也可以用module.factory返回一个对象(这就和module.value一样一样的)。module.service常用于返回一个构造器,你可以利用它生成不同的对象实例(区别于其他的单例service)。
实际上module.value/constant/factory/service全都是module.provider的变种(语法糖),好好把官方文档里关于依赖注入和服务那一章看一遍你就全明白了。
                            
查看完整回答
反对 回复 2019-04-13
?
MYYA

TA贡献1868条经验 获得超4个赞

用service咯,service一般用来存数据,factory一般是用来调用多个service~或者返回方法,当然功能都是可以互用的,其实感觉是差不多的,至于他们的区别你可以去看这个或者这个
                            
查看完整回答
反对 回复 2019-04-13
  • 2 回答
  • 0 关注
  • 315 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信