如果标题错误,我很抱歉,因为我无法找到最佳标题。如果你想
,你可以改变它常量文件
/* 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-annotate cmdline( ng-annotate --single_quotes --add routeHelper.js -o routeHelper.js )时,它会创建以下
routeHelper.$inject = ['$location', '$rootScope', '$state', '_', 'logger', 'routeHelperConfig'];
你可以看到与ng-annoate吐出的差异' _'而不是' lodash'。
问题
如何控制ng-annoate不能取代' lodash'与' _'
答案 0 :(得分:1)
ng-annotate尝试尽可能聪明,但它无法读懂你的想法! :-)如果您的参数名称与注入的service / constant / whatever不同,那么您只需为要运行的程序指定$ inject数组。如果你不这样做,程序就不会运行(缩小与否)。
所以,如果你必须这样做,那么只需手动添加$ inject数组。 ng-annotate只要您使用--add
而不是--add --remove
运行它,就会保持完整。