http://www.angularjs.net.cn/tutorial/17.html
参考AngularJS中文网
为何要在这里列举这三种风格呢:
1.三种风格都有各自特色
2.每个人编写的风格不一样,在学习别人的博客时不要混淆
推断依赖
最简单的获取依赖的方法是让你的函数的参数名直接使用依赖名。
function MyController($scope, greeter) {
...
}
$scope 和 greeter 是两个需要被注入到函数中的服务。虽然这种方式很直观明了,但是它对于压缩的 JavaScript 代码来说是不起作用的,因为压缩过后的 JavaScript 代码重命名了函数的参数名。这就让这种注释方式只对 pretotyping 和 demo级应用有用.
最好不要用这种方式,如果你上线了之后不想回来修改代码
$inject 注释
var MyController = function(renamed$scope, renamedGreeter) {
...
}
MyController['$inject'] = ['$scope', 'greeter'];
由于需要一个临时的变量导致代码膨胀:
var greeterFactory = function(renamed$window) {
...
};
greeterFactory.$inject = ['$window'];
someModule.factory('greeter', greeterFactory);
过于膨胀的代码引导出了第三种依赖注入方式:
第三种
someModule.factory('greeter', ['$window', function(renamed$window) {
...
}]);
最好的一种方式,切记不要将中括号外的'greeter'与括号内的'$window'混淆,前者是声明创建依赖,后者是注入依赖。
网友评论