压缩工具: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——四大特性之依赖注入的更多相关文章

  1. AngularJs学习笔记2——四大特性之MVC

    angularJs的四大特性 ①.采用MVC的设计模式 ②.双向数据绑定 ③.依赖注入 ④.模块化设计 现在细说一下MVC的设计模式: MVC: Model(模型)--项目中的数据 View(视图)- ...

  2. AngularJs学习笔记7——四大特性之模块化设计

    模块化设计 1.引用自定义模块并调用 自定义模块中,如果有一些服务.封装好笑模块,在另外一个模块中(声明的时候,在依赖列表中加入要引入的模块) var app02 = angular.module(' ...

  3. AngularJs学习笔记4——四大特性之双向数据绑定

    双向数据绑定 方向1:模型数据(model)绑定到视图(view) 实现方法:①.{{model变量名}}  ②.常用指令(ng-repeat) 方向2:将视图(view)中用户输入的数据绑定到模型数 ...

  4. 吴裕雄--天生自然JAVA SPRING框架开发学习笔记:Spring DI(依赖注入)的实现方式属性注入和构造注入

    依赖注入(Dependency Injection,DI)和控制反转含义相同,它们是从两个角度描述的同一个概念. 当某个 Java 实例需要另一个 Java 实例时,传统的方法是由调用者创建被调用者的 ...

  5. AngularJs学习笔记--Dependency Injection(DI,依赖注入)

    原版地址:http://code.angularjs.org/1.0.2/docs/guide/di 一.Dependency Injection(依赖注入) 依赖注入(DI)是一个软件设计模式,处理 ...

  6. AngularJs学习笔记--Forms

    原版地址:http://code.angularjs.org/1.0.2/docs/guide/forms 控件(input.select.textarea)是用户输入数据的一种方式.Form(表单) ...

  7. AngularJs学习笔记--concepts(概念)

    原版地址:http://code.angularjs.org/1.0.2/docs/guide/concepts 继续.. 一.总括 本文主要是angular组件(components)的概览,并说明 ...

  8. AngularJS学习笔记2——AngularJS的初始化

    本文主要介绍AngularJS的自动初始化以及在必要的适合如何手动初始化. Angular <script> Tag 下面通过一小段代码来介绍推荐的自动初始化过程: <!doctyp ...

  9. AngularJs学习笔记--Injecting Services Into Controllers

    原版地址:http://docs.angularjs.org/guide/dev_guide.services.injecting_controllers 把service当作被依赖的资源加载到con ...

随机推荐

  1. block为什么要用copy,runtime的简单使用

    分享一篇文章:link

  2. 帧动画 AnimationDrawable

    Drawable Animation(Frame Animation):帧动画,就像GIF图片,通过一系列Drawable依次显示来模拟动画的效果. 首先,在res/drawable中定义动画 < ...

  3. c#将Excel数据导入到数据库的实现代码(转载)

    假如Excel中的数据如下:     数据库建表如下:     其中Id为自增字段:      代码如下: using System; using System.Collections.Generic ...

  4. Spring 3.0就这么简单读书笔记

    一般情况下,spring容器中的大部分Bean都是单实例的,所以一般无须通过@Repository.@Service.@Component等注解的value属性为Bean指定名称,也无须使用@Qual ...

  5. JS时间的计算,当前日期加一天或者几天的计算

    //alert();//debugger;var newriqi="";var jjd=defaultForm.getCellById(sjyxjid).getText();var ...

  6. rsync从windows到linux的同步备份

    名称 角色 IP地址 Windows server 2003 服务器 Eth0:192.168.1.1 RHEL5.5 客户端 Eth0:192.168.1.2   一.cwRsyncServer服务 ...

  7. oracle 界面分页

    /** * */ package org.pan.util; import java.sql.ResultSet; import java.sql.SQLException; import java. ...

  8. jQuery extend方法介绍

    jQuery为开发插件提拱了两个方法,分别是: jQuery.fn.extend(object); jQuery.extend(object); jQuery.extend(object);为扩展jQ ...

  9. phpcms 2008和discuz X3.1实现同步登陆退出论坛(已实现)

    网络上文章很多,按步骤配置好了之后phpcms可以同步登录dz,但是dz登录后状态却无法同步到phpcms,网络上找了很多资料都大同小异,头大.只能自己调试了,废话不多说了.       以下网络上抄 ...

  10. phpEXCEL操作全解

    phpExcel中文帮助手册,列举了各种属性,以及常用的操作方法,难得是每一个都用实例加以说明,希望对大家有所帮助. phpExcel中文帮助手册,不可多得的好文章,供大家学习参考. 1.设置exce ...