angular之DI理解
angular之DI理解
bosscheng 发表于2年前
angular之DI理解
  • 发表于 2年前
  • 阅读 241
  • 收藏 0
  • 点赞 0
  • 评论 0

标题:腾讯云 新注册用户域名抢购1元起>>>   

    对于DI的理解:也就是说,我只要指出需要哪些对象,然后就有人把这些对象给我,而这个‘人’可能就是一个应用框架,也可能是一个测试容器,我不关系是谁,也不用关心他怎么得到这个对象的,这个‘人’,专业点的说法,就是‘容器’。

    而这边“我需要那些对象”的方式,也有很多种,比如可以直接声明一个属性,或者写一个注释,或者写一个配置文件来声明依赖关系,或者在函数的参数声明,目前angular所采用的方式是函数参数的形式,和一种变形的注释形式来方式以防止文件压缩导致破坏名称。


angular中的DI

    在angular 中,所有主要编程元素都需要通过某种方式注册进去,例如 myModule.service('serviceName',function(){})

实际上就是把后面的函数加入到一个容器中,要注意的是:angular全面实现了延迟初始化,也就是说,当这个对象没有被人需要的时候,他是不会被创建出来的,这样对于提升性能有定帮助,尤其是加快的启动速度。

    在angular中,是不存在正真的全局对象,所以你可以方向在同一个页面使用多个app,而不用担心互相干扰 ,但是容器有需要一个容器存放,在angular中,这个容器就是module,angular.module('someModule',['dep1','dep2']).

    根据DI的原理:被注入的对象通常是单例的,因为创建了一个,就可以始终使用他,不需要多次创建,因此,如果你需要在angular中跨controller共享数据或者通讯,那么你就可以创建一个service/factory/provide,然后把他们分别注入到两个controller 中去,而这两个controller就会共享这个对象了。




标签: angular DI
共有 人打赏支持
粉丝 79
博文 211
码字总数 91232
×
bosscheng
如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!
* 金额(元)
¥1 ¥5 ¥10 ¥20 其他金额
打赏人
留言
* 支付类型
微信扫码支付
打赏金额:
已支付成功
打赏金额: