javascript - ng-annotate 控件依赖名称

标签 javascript angularjs model-view-controller dependency-injection bundling-and-minification

很抱歉,如果标题有误,因为我无法找出最好的标题。如果您愿意,可以更改它

常量文件

/* 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'];

问题

手动注入(inject)依赖项效果很好。

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”替换为“_”

最佳答案

ng-annotate 试图尽可能聪明,但它无法读懂你的想法! :-) 如果您的参数名称与注入(inject)的服务/常量/其他名称不同,那么您只需指定 $inject 数组即可运行程序。如果不这样做,程序将不会运行(无论是否缩小)。

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

关于javascript - ng-annotate 控件依赖名称,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26010403/

相关文章:

javascript - 拒绝所有 AJAX 请求

javascript - 如何改变reactjs中的状态

javascript - 在 ng-app 声明中定义 AngularJS 代码

javascript - ngRoute 在刷新或未知路由时不起作用

php - 在 Web 应用程序之间共享模型数据

javascript - jQuery:循环具有不同超时值的循环

javascript - 通过 highcharts-ng 指令将使用 highcharts 的图表添加到 Angular

angularjs - 在 Bootstrap 后向模块添加指令并应用于动态内容

ruby-on-rails - 从应用程序布局调用 Controller 操作

php - 对子类使用语句