首页 > 代码库 > AngularJs学习笔记6——四大特性之依赖注入
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——四大特性之依赖注入