AngularJs学习笔记6——四大特性之依赖注入
压缩工具:YUI-compressor
为了优化网页功能,对一些脚本文件进行压缩,比如:删除所有的注释和空格等,简化形参。但是AngularJs模块中可以声明多种组件,如控制器、指令、过滤器、服务等。创建这些模块组件对象时,构造函数是由AngularJS调用的,故不能像普通函数那样,声明任意的形参。使得压缩后的文件无法使用,这时候采用标记式和行内式的数组形式(注意顺序的对应关系),使得压缩后依然可以使用。
依赖:实现功能的时候,如果需要某些模块,模块就是需要的依赖
AngularJS会自动根据依赖对象的形参名,创建需要的对象,最为实参传递进来——依赖注入!
ng模块常用的注入对象:
①.$http ②.$scope ③.$rootScope ④.$interval ⑤$timeout ⑥.$location ⑦.自定义服务
依赖注入的3种类型
1.推断式
这种注入方式不需要关注参数的先后顺序,ng会推断服务是否存在。不能处理压缩或者混淆后的代码,只能处理原始代码.
2.标记式
直接调用$inject属性来完成依赖的注入
var ctrFunc=function ($scope,$show,$write) {
$scope.funcBtn1=function(){
$show.show();
}
$scope.funcBtn2=function(){
$write.write();
}
}
//对控制器的回调函数,设置依赖注入时的标记
ctrFunc.$inject=['$scope','$show','$write'];
app.controller('fanCtrl', ctrFunc);
3.行内式
允许开发人员将一个字符型数组作为对象的参数,在这个数组中,除了最后一个元素必须是函数体之外,都是服务名
app.controller(‘myCtrl’,[‘$scope’,’$http’,…function($scope,$http){}]);
强调:注意数组中依赖模块的对应关系
示例什么的个人项目再说吧,基础知识大致就这些了。
$injector注入器——依赖注入背后的故事
它可以快速定位到应用需要注入的各种服务,整个ng应用的注入对象都由$injector定位和创建。
$injector.has()à判断一个服务是否存在
$injector.get()à得到服务的实例
AngularJs学习笔记6——四大特性之依赖注入的更多相关文章
- AngularJs学习笔记2——四大特性之MVC
angularJs的四大特性 ①.采用MVC的设计模式 ②.双向数据绑定 ③.依赖注入 ④.模块化设计 现在细说一下MVC的设计模式: MVC: Model(模型)--项目中的数据 View(视图)- ...
- AngularJs学习笔记7——四大特性之模块化设计
模块化设计 1.引用自定义模块并调用 自定义模块中,如果有一些服务.封装好笑模块,在另外一个模块中(声明的时候,在依赖列表中加入要引入的模块) var app02 = angular.module(' ...
- AngularJs学习笔记4——四大特性之双向数据绑定
双向数据绑定 方向1:模型数据(model)绑定到视图(view) 实现方法:①.{{model变量名}} ②.常用指令(ng-repeat) 方向2:将视图(view)中用户输入的数据绑定到模型数 ...
- 吴裕雄--天生自然JAVA SPRING框架开发学习笔记:Spring DI(依赖注入)的实现方式属性注入和构造注入
依赖注入(Dependency Injection,DI)和控制反转含义相同,它们是从两个角度描述的同一个概念. 当某个 Java 实例需要另一个 Java 实例时,传统的方法是由调用者创建被调用者的 ...
- AngularJs学习笔记--Dependency Injection(DI,依赖注入)
原版地址:http://code.angularjs.org/1.0.2/docs/guide/di 一.Dependency Injection(依赖注入) 依赖注入(DI)是一个软件设计模式,处理 ...
- AngularJs学习笔记--Forms
原版地址:http://code.angularjs.org/1.0.2/docs/guide/forms 控件(input.select.textarea)是用户输入数据的一种方式.Form(表单) ...
- AngularJs学习笔记--concepts(概念)
原版地址:http://code.angularjs.org/1.0.2/docs/guide/concepts 继续.. 一.总括 本文主要是angular组件(components)的概览,并说明 ...
- AngularJS学习笔记2——AngularJS的初始化
本文主要介绍AngularJS的自动初始化以及在必要的适合如何手动初始化. Angular <script> Tag 下面通过一小段代码来介绍推荐的自动初始化过程: <!doctyp ...
- AngularJs学习笔记--Injecting Services Into Controllers
原版地址:http://docs.angularjs.org/guide/dev_guide.services.injecting_controllers 把service当作被依赖的资源加载到con ...
随机推荐
- block为什么要用copy,runtime的简单使用
分享一篇文章:link
- 帧动画 AnimationDrawable
Drawable Animation(Frame Animation):帧动画,就像GIF图片,通过一系列Drawable依次显示来模拟动画的效果. 首先,在res/drawable中定义动画 < ...
- c#将Excel数据导入到数据库的实现代码(转载)
假如Excel中的数据如下: 数据库建表如下: 其中Id为自增字段: 代码如下: using System; using System.Collections.Generic ...
- Spring 3.0就这么简单读书笔记
一般情况下,spring容器中的大部分Bean都是单实例的,所以一般无须通过@Repository.@Service.@Component等注解的value属性为Bean指定名称,也无须使用@Qual ...
- JS时间的计算,当前日期加一天或者几天的计算
//alert();//debugger;var newriqi="";var jjd=defaultForm.getCellById(sjyxjid).getText();var ...
- rsync从windows到linux的同步备份
名称 角色 IP地址 Windows server 2003 服务器 Eth0:192.168.1.1 RHEL5.5 客户端 Eth0:192.168.1.2 一.cwRsyncServer服务 ...
- oracle 界面分页
/** * */ package org.pan.util; import java.sql.ResultSet; import java.sql.SQLException; import java. ...
- jQuery extend方法介绍
jQuery为开发插件提拱了两个方法,分别是: jQuery.fn.extend(object); jQuery.extend(object); jQuery.extend(object);为扩展jQ ...
- phpcms 2008和discuz X3.1实现同步登陆退出论坛(已实现)
网络上文章很多,按步骤配置好了之后phpcms可以同步登录dz,但是dz登录后状态却无法同步到phpcms,网络上找了很多资料都大同小异,头大.只能自己调试了,废话不多说了. 以下网络上抄 ...
- phpEXCEL操作全解
phpExcel中文帮助手册,列举了各种属性,以及常用的操作方法,难得是每一个都用实例加以说明,希望对大家有所帮助. phpExcel中文帮助手册,不可多得的好文章,供大家学习参考. 1.设置exce ...