美文网首页
AngularJS_三种依赖注入风格

AngularJS_三种依赖注入风格

作者: Shokka | 来源:发表于2018-08-27 13:44 被阅读0次

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'混淆,前者是声明创建依赖,后者是注入依赖。

相关文章

网友评论

      本文标题:AngularJS_三种依赖注入风格

      本文链接:https://www.haomeiwen.com/subject/hzwziftx.html