Page 132 - AngularJS权威教程
P. 132
112 第 13 章 依赖注入
13.4.4 instantiate()
instantiate()方法可以创建某个JavaScript类型的实例。它会通过new操作符调用构造函数,
并将所有参数都传递给构造函数。它可以接受两个参数。
Type(函数)
构造函数。
locals(对象,可选)
这是一个可选的参数,提供了另一种传递参数的方式。
instantiate()方法返回Type的一个新实例。
13.4.5 invoke()
invoke()方法会调用方法并从$injector中添加方法参数。
invoke()方法接受三个参数。
fn(function)
这个函数就是要调用的函数。这个函数的参数由函数声明设置。
self (object-可选)
self参数允许我们设置调用方法的this参数。
locals (object-可选)
这个可选参数提供另一种方式在函数被调用时传递参数名给该函数。
invoke()方法返回fn函数返回的值。
13.5 ngMin
上面介绍了三种声明依赖注入的方式,可以在定义函数时选择任意一种合适的方式。但在实
际生产过程中,当代码体积变得非常庞大时,写代码还要关心参数顺序将是一个耗费心力的工作。
通过使用ngMin这个工具,能够减少我们定义依赖关系所需的工作量。ngMin是一个为
AngularJS应用设计的预压缩工具,它会遍历整个AngularJS应用并帮助我们设置好依赖注入。
例如,它会将如下代码:
angular.module('myApp', [])
.directive('myDirective', function($http) { })
.controller('IndexController', function($scope, $q) {
});
转换成下面的形式:
angular.module('myApp', [])
.directive('myDirective', ['$http', function ($http) { }])
.controller('IndexController', [ '$scope', '$q',function ($scope, $q) {} ]);