Angularjs 我真的需要写';ngInject';

Angularjs 我真的需要写';ngInject';,angularjs,Angularjs,我目前正在重构我的代码,使之符合组件基础架构(以便进一步迁移到Angular)。 我真的需要'ngInject'字符串和末尾的$inject 在我当前的代码中,我将ng annotate与gulp一起使用,它似乎处理了所有用于缩微的依赖注入 class SecuritySettingsCtrl { constructor($scope) { 'ngInject'; _self = this; _self.$onInit = func

我目前正在重构我的代码,使之符合组件基础架构(以便进一步迁移到Angular)。 我真的需要
'ngInject'
字符串和末尾的
$inject

在我当前的代码中,我将
ng annotate
与gulp一起使用,它似乎处理了所有用于缩微的依赖注入

   class SecuritySettingsCtrl {
    constructor($scope) {
        'ngInject';
        _self = this;

        _self.$onInit = function () {
            //....
            }

        };
    }

SecuritySettingsCtrl.$inject = ['$scope'];
export default SecuritySettingsCtrl

您需要'ngInject'(如果配置正确且有效)或。$inject=。。。, 或导出默认值['$scope',…]

JavaScript迷你们通常对Angular一无所知。所以他们缩小了

function ctrl($scope) { $scope.name = 'test'}
差不多

function c(a) { a.name = 'test'}
如果您添加ng anotate或angularjs annotate或任何您喜欢的插件,并且可以正常工作,它将为您添加
ctrl.$inject=['$scope']
,因此您有:

function c(a) { a.name = 'test'}
c.$inject = ['$scope']
如果您的缩小应用程序正常工作,则正确配置了ngInject(或其他任何内容)

另外,将“ngInject”与手动注入
SecuritySettingsCtrl.$inject一起使用当然毫无意义。
“它可以工作”意味着它可以工作:D您可以在结果缩小的js文件中,通过测试或在real app中手动检查它。

您能解释一下:它是否配置正确并且可以工作吗?