AngularJS通过ngInject和ng-annotate双注入

问题描述:

我正在使用Gulp为AngularJS应用程序构建我的主JavaScript文件(app.js)。除了困扰我的一件小事外,一切工作都很好。我正在使用ng-annotate来自动分析我的角度js并添加依赖注入语法。所以我从这个去(手动进样,而不使用NG-注释):AngularJS通过ngInject和ng-annotate双注入

angular.module('base.controllers') 
     .controller('RandomeCtrl', 
       ['$scope', '$routeParams', ..., 
        function($scope, $routeParams, ...) { 

为了这个(代码,将适当地NG-注释进行修改):

angular.module('base.controllers') 
     .controller('RandomeCtrl', 
        function($scope, $routeParams, ...) { 

然而,在重大项目,如果代码被单独使用或作为一套控制器重复使用或(剪切粘贴),或者作为一套控制器使用,我喜欢为我的未来自我和其他开发者添加/* @ngInject */注释的警告。像这样:

angular.module('base.controllers') 
     .controller('RandomeCtrl', 
     /*@ngInject*/ 
       function($scope, $routeParams, ...) { 

双注射阵列存在一个问题,如下所示:https://github.com/olov/ng-annotate/issues/28。然而,这似乎并不适用于同样的情况,我想知道是否有一个双重注入的主要问题,我需要死一般的担心,而且我无法在网上找到有关后果的其他信息。

不需要害怕! /*@ngInject*/是一种告诉ng注释你想让它注释某段代码的方法。如果它已经知道了这一点,/*@ngInject*/不会使它做任何额外的事情,并且完全无害。

+0

从创建者,优秀。谢谢。 – oberger 2014-11-01 20:31:45