第7章 依赖注入

AngularJS采用模块化的方式组织代码,将一些通用逻辑封装成一个对象或函数,实现最大程度的复用,这导致了使用者和被使用者之间存在依赖关系。

所谓依赖注入是指在运行时自动查找依赖关系,然后将查找到依赖传递给使用者的一种机制。
常见的AngularJS内置服务有$http、$location、$timeout、$rootScope等

7.1 推断式注入

  • 没有明确声明依赖,AngularJS会将函数参数名称当成是依赖的名称。

  • 示例

//控制器依赖$http、$rootScope服务
//但并未明确声明依赖,这时会自动将函数里的参数名当成依赖对象
// 推断式依赖注入
App.controller('DemoController', function ($scope, $http) {
	//发起Ajax请求
	$http({
	    method: 'POST',
		url: 'example.php',
		data: {}
	});
});
  • 这种方式会带来一个问题,当代码经过压缩后函数的参数被压缩,这样便会造成依赖无法找到。

7.2 行内注入

  • 以数组形式明确声明依赖,数组元素都是包含依赖名称的字符串,数组最后一个元素是依赖注入的目标函数。

  • 示例

//控制器依赖$http、$rootScope服务
//以数组形式进行声明,注意书写顺序
App.controller('DemoController', ['$http', '$rootScope', function ($http, $rootScope) {
	//发起Ajax请求
	$http({
	    method: 'POST',
		url: 'example.php',
		data: {}
	});
}]);

posted on 2018-03-11 16:50  luoyu113  阅读(122)  评论(0)    收藏  举报