angular.injector
2016-02-26 17:09
567 查看
可通过angular.injector()方法来获取指定的服务。
正常,我们都是在controller等创建的时候,需要什么服务,就通过依赖的方式引进来。如todomvc的demo代码:
可是,通过injector,我们就可以想在什么时候引入服务,就什么时候引入。
注入器负责从我们通过$provide创建的服务中创建注入的实例。只要你编写了一个带有可注入性的参数,你都能看到注入器是如何运行的。每一个AngularJS应用都有唯一一个$injector,当应用启动的时候它被创造出来,你可以通过将$injector注入到任何可注入函数中来得到它($injector知道如何注入它自己!)。
一旦你拥有了$injector,你可以动过调用get函数来获得任何一个已经被定义过的服务的实例。
注入器同样也负责将服务注入到函数中;例如,你可以魔法般的将服务注入到任何函数中,只要你使用了注入器的invoke方法:
可参考:
http://sentsin.com/web/663.html http://docs.angularjs.cn/api/auto/service/$injector
正常,我们都是在controller等创建的时候,需要什么服务,就通过依赖的方式引进来。如todomvc的demo代码:
可是,通过injector,我们就可以想在什么时候引入服务,就什么时候引入。
注入器负责从我们通过$provide创建的服务中创建注入的实例。只要你编写了一个带有可注入性的参数,你都能看到注入器是如何运行的。每一个AngularJS应用都有唯一一个$injector,当应用启动的时候它被创造出来,你可以通过将$injector注入到任何可注入函数中来得到它($injector知道如何注入它自己!)。
一旦你拥有了$injector,你可以动过调用get函数来获得任何一个已经被定义过的服务的实例。
var myMod = angular.module('myModule', []); myMod.provider('greeting', function() { this.$get = function() { return function(name) { alert("Hello, " + name); }; }; }); var $injector = angular.injector(); var greeting = $injector.get('greeting'); greeting('Ford Prefect');
注入器同样也负责将服务注入到函数中;例如,你可以魔法般的将服务注入到任何函数中,只要你使用了注入器的invoke方法:
var myFunction = function(greeting) { greeting('Ford Prefect'); }; //把服务注入到myFunction函数中 $injector.invoke(myFunction);
可参考:
http://sentsin.com/web/663.html http://docs.angularjs.cn/api/auto/service/$injector
相关文章推荐
- angular.module
- angularJS实现聊天窗口中发送和接收信息时,将聊天记录窗口滑动条实时滑至底部
- angularjs radio
- angularJs 指令的用法
- angularjs onchange
- angularjs+bootstrap+ngDialog实现模式对话框
- AngularJS 基础点
- 探索angularjs+requirejs全面实现按需加载的套路
- [转]AngularJS 之 Factory vs Service vs Provider
- :angularjs学习总结(~~很详细的教程) 很不错的一篇帖子 适合快速了解angularjs整体结构 有个整体印象
- angularJs中图表功能-angular-flot
- angularJS项目开发需要下载安装和配置的环境
- angular-flot学习总结
- angular-flot学习总结
- 探索angularjs+requirejs全面实现按需加载的套路
- AngularJS 之 ngGrid
- 【AngularJS学习笔记】01 指令、服务和过滤器
- #学习笔记#(46)6步搭建Angular项目
- AngularJS进阶(三十四)Angular数据更新不及时问题探讨
- AngularJS进阶(三十四)Angular数据更新不及时问题探讨