2014-10-31 75 views
3

我正在使用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。然而,這似乎並不適用於同樣的情況,我想知道是否有一個雙重注入的主要問題,我需要死一般的擔心,而且我無法在網上找到有關後果的其他信息。

回答

9

不需要害怕! /*@ngInject*/是一種告訴ng註釋你想讓它註釋某段代碼的方法。如果它已經知道了這一點,/*@ngInject*/不會使它做任何額外的事情,並且完全無害。

+0

從創建者,優秀。謝謝。 – oberger 2014-11-01 20:31:45