0

对不起,如果标题是错误的,因为我无法弄清楚它的最佳标题。如果你想ng-annotate控件依赖项名称

恒文件

/* global lodash:false */ 
(function() { 
    'use strict'; 

    angular 
     .module('blocks.router') 
     .constant('lodash', _); 
})(); 

routerHelper.js文件

/* @ngInject */ 

function routeHelper($location, $rootScope, $state, _, logger, routeHelperConfig) 

routeHelper.$inject = ['$location', '$rootScope', '$state', '_', 'logger', 'routeHelperConfig']; 

问题

手动注入依赖工作正常,你可以改变它。

routeHelper.$inject = ['$location', '$rootScope', '$state', 'lodash', 'logger', 'routeHelperConfig']; 

但是当我运行NG-注释CMDLINE(NG-注释--single_quotes --add routeHelper.js -o routeHelper.js)它会创建以下

routeHelper.$inject = ['$location', '$rootScope', '$state', '_', 'logger', 'routeHelperConfig']; 

你可以看到与ng-annoate不同的是吐出'_'而不是'lodash'。

问题

如何控制NG-annoate不与“_”

回答

1

NG-注释试图尽可能智能更换“lodash”,但它不能读你的心! :-)如果您的参数名称不同于注入的service/constant/whatever,那么您只需指定$ inject数组即可让程序运行。如果你不这样做,程序将不会运行(缩小或不缩小)。

所以如果你必须这样做,那么只需手动添加$ inject数组。只要你用--add而不是--add --remove运行,ng-annotate就会保持不变。

+0

谢谢olov ..手动注入阵列工作正常。这个想法是使它自动化并且仍然避免用'_'替换'lodash' – Chief 2014-09-28 23:55:58

+1

要么是:1.'angular.module(foo).constant(“lodash”,_)然后函数routeHelper(lodash){}或者2. angular.module(foo).constant(“_”,_)然后函数routeHelper(_){}'或者3.提供显式的注释数组。 – olov 2014-10-09 12:29:16

相关问题