Javascript ng注释控件依赖项名称
抱歉,如果标题是错误的,因为我无法找出它的最佳标题。如果你愿意,你可以改变它 常量文件Javascript ng注释控件依赖项名称,javascript,angularjs,model-view-controller,dependency-injection,bundling-and-minification,Javascript,Angularjs,Model View Controller,Dependency Injection,Bundling And Minification,抱歉,如果标题是错误的,因为我无法找出它的最佳标题。如果你愿意,你可以改变它 常量文件 /* global lodash:false */ (function () { 'use strict'; angular .module('blocks.router') .constant('lodash', _); })(); /* @ngInject */ function routeHelper($location, $rootScop
/* global lodash:false */
(function () {
'use strict';
angular
.module('blocks.router')
.constant('lodash', _);
})();
/* @ngInject */
function routeHelper($location, $rootScope, $state, _, logger, routeHelperConfig)
routeHelper.$inject = ['$location', '$rootScope', '$state', '_', 'logger', 'routeHelperConfig'];
routerHelper.js文件
/* global lodash:false */
(function () {
'use strict';
angular
.module('blocks.router')
.constant('lodash', _);
})();
/* @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——单引号——添加routeHelper.js-o routeHelper.js)时,它会创建以下内容
routeHelper.$inject = ['$location', '$rootScope', '$state', '_', 'logger', 'routeHelperConfig'];
你可以看到ng annoate吐出“u”而不是“lodash”的区别
问题
我如何控制ng annotate不将“lodash”替换为“u”ng annotate试图尽可能聪明,但它无法读懂你的心思!:-)如果您的参数的名称与注入的服务/常量/其他名称不同,那么您只需为要运行的程序指定$inject数组即可。如果不这样做,程序将不会运行(缩小或不缩小)
因此,您必须这样做,然后只需手动添加$inject数组。只要您使用
--add
而不是--add--remove运行它,ng annotate将保持它的完整性。。手动注射阵列工作良好。这样做的目的是使其自动化,同时避免用“lodash”替换为“1”<代码>角度模块(foo).常量(“lodash”,u),然后函数routeHelper(lodash){}
或2<代码>角度.module(foo).constant(““,)”然后是函数routeHelper(){}或3。提供显式注释数组。