介绍Angular的注入服务
2016-05-17 18:44
417 查看
其实angular的注入服务是挺复杂的,目前看源码也只看懂了一半,为了不误导大家,我也不讲敢讲太复杂,怕自己都理解错了。
首先我们要知道angular的三种注入方式:
第一种:inference
第二种:annotation
第三种:inline
首先我们要知道angular的三种注入方式:
第一种:inference
var myModule = function($scope){ }
第二种:annotation
var myModule = function($location){ console.log('Module:代码注入$location成功'); console.log($location); } myModule.$inject = ['$location']; $injector.invoke(myModule);
第三种:inline
var MyTest = ['$location',function($location){ }]
var MyTest = ['$location',function($location){ console.log('Test:代码注入$location成功'); console.log($location); }] var myModule = function($location){ console.log('Module:代码注入$location成功'); console.log($location); } angular.module('MyApp',[]) .run(function($injector){ console.log($injector); //功能和注入时声明一样,但是在注入时声明有时会出现循环依赖的问题,这个时候基本可以在函数内部注入解决。 console.log($injector.get('$http')); //用来获取对象的依赖注入 console.log($injector.annotate(MyTest)); //注入函数,当你定义了某个函数,超出ng的规范的时候,你可以选择用这种方法注入函数,来达到访问ng内置服务的目的 $injector.invoke(MyTest); //当前服务是否存在 console.log($injector.has('myFact')); // myModule.$inject = ['$location'] // $injector.invoke(myModule); }) .factory('myFact',function(){ return {} }) .controller('MyCtrl',function(){ })
相关文章推荐
- angular $resource模块
- angularJs中关于ng-class的三种使用方式说明
- angularjs中watch使用--实现项目中时时搜索
- angularjs中的路由介绍详解 ui-route
- Angular学习(2)Directives
- AngularJS学习-(左侧导航栏筛选、input输入框筛选)
- AngularJS学习(1)Expressions
- AngularJs ng-repeat 必须注意的性能问题
- Angularjs中的事件广播 ―全面解析$broadcast,$emit,$on
- AngularJs 打开OA详细Dialog的实现
- angularjs中 如何给一个跳转的页面,在跳转时注册JS控制器
- AngularJs 第一个自定义指令编写
- AngularJs:Service、Factory、Provider依赖注入使用与区别
- 【AngularJS】学习笔记
- AngularJS with MVC4 CRUD
- Using AngularJS with .NET MVC 5
- 初识AngularJS
- AngularJS 路由:ng-route 与 ui-router
- AngularJS 指令详解(业界大牛的详细学习笔记)
- AngularJS学习记录-工具方法