美文网首页
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