文档章节

angular之DI理解

bosscheng
 bosscheng
发布于 2015/12/02 10:03
字数 490
阅读 245
收藏 0

    对于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就会共享这个对象了。




© 著作权归作者所有

共有 人打赏支持
bosscheng
粉丝 80
博文 303
码字总数 95443
作品 0
南京
前端工程师
私信 提问
JavaScript MVW 框架 - AngularJS

Angular JS (Angular.JS) 是一组用来开发 Web 页面的框架、模板以及数据绑定和丰富 UI 组件。它支持整个开发进程,提供 Web 应用的架构,无需进行手工 DOM 操作。 AngularJS 很小,只有 60K,...

匿名
2011/01/20
0
44
ngular2 VS Angular4 深度对比:特性、性能

在Web应用开发领域,Angular被认为是最好的开源JavaScript框架之一。 Google的Angular团队已于3月23日发布了Angular4,而期待已久的Angular2版本则是之前版本的完全重构。 对于成熟的开发人员...

机器的心脏
2018/06/02
0
0
5ThingsToKnowBeforeYouGetStartedWithAngulerJS

AngularJS is Entirely Client-Side AngularJS is written in JavaScript, and it functions entirely on the client side. This means two things for your app. First, you can run Angula......

perfectspr
2014/12/16
0
0
OSChina 技术专题之 AngularJS 更新版(201412)

Angular JS (Angular.JS) 是一组用来开发Web页面的框架、模板以及数据绑定和丰富UI组件。它支持整个开发进程,提供web应用的架构,无需进行手工DOM操作。 AngularJS很小,只有60K,兼容主流浏...

OSC编辑部
2014/10/17
11.1K
26
【前端】—聊聊我认识的Angular

前言 最近接触的项目前端用到了Angular框架,之前略有耳闻,从vue换到Angular,感觉东西差不多,还是要系统学习的,先来了解下。 正文 1、Angular 的发展 AngularJS 是一款来自Google的前端J...

zt15732625878
2018/05/19
0
0

没有更多内容

加载失败,请刷新页面

加载更多

使用 top instance 命令查看运行中 MaxCompute 作业

我们都知道,在 MaxCompute Console 里,可以使用下面的命令来列出运行完成的 instance 列表。 show p|proc|processlist [from <yyyy-MM-dd>] [to <yyyy-MM-dd>] [-p <project>] [-limit <nu......

阿里云云栖社区
14分钟前
1
0
PostgreSQL SSL证书生成与启用

ref: https://yq.aliyun.com/articles/14965

YuanyuanL
16分钟前
1
0
了解 BFC

概念 MDN中的定义 块格式化上下文(Block Formatting Context,BFC) 是Web页面的可视化CSS渲染的一部分,是布局过程中生成块级盒子的区域,也是浮动元素与其他元素的交互限定区域。 具有 BF...

小草先森
17分钟前
1
0
使用MaxCompute Java SDK 执行任务卡住了,怎么办?

场景一 用户A A: “亲,用 MaxCompute Java SDK 跑作业,为什么卡住不动了?” me: “有 Logview 吗?发来看下” A: “没有,我用的是SDK,没Logview” 场景二 用户B B :“亲,用 MaxCompu...

阿里云官方博客
26分钟前
1
0
使用Ant Design 和Vue,React中后台开发套餐

前言 目前Ant Design 提供 React 和 Vue 两种整合开发框架,开箱即用的中台前端/设计解决方案,可适合中小公司统一后台开发技术栈,本来只是业务信息系统,不要重复造轮子 AntDesign of Rea...

郭恩洲_OSC博客
33分钟前
2
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部