代码之家  ›  专栏  ›  技术社区  ›  IsraGab

我真的需要写“工程”吗

  •  0
  • IsraGab  · 技术社区  · 7 年前

    我目前正在重构我的代码以符合组件基础架构(用于进一步迁移到角度)。 我真的需要 'ngInject' 字符串和 $inject

    在我当前使用的代码中 ng-annotate 与gulp,它似乎处理所有的依赖注入缩小。

       class SecuritySettingsCtrl {
        constructor($scope) {
            'ngInject';
            _self = this;
    
            _self.$onInit = function () {
                //....
                }
    
            };
        }
    
    SecuritySettingsCtrl.$inject = ['$scope'];
    export default SecuritySettingsCtrl
    
    1 回复  |  直到 7 年前
        1
  •  1
  •   Petr Averyanov    7 年前

    您需要'ngInject'(如果它配置正确并且可以工作)或者。$inject=。。。, 或导出默认值[“$scope”,…]

    一般来说,JavaScript迷你者对角度一无所知。所以他们缩小了

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

    有点像

    function c(a) { a.name = 'test'}
    

    如果你添加了ng anotate或angularjs注释或任何你喜欢的插件,它会添加 ctrl.$inject = ['$scope'] 对你来说,你有:

    function c(a) { a.name = 'test'}
    c.$inject = ['$scope']
    

    如果你的小型应用程序工作-你配置的工程(或其他)正确。

    SecuritySettingsCtrl.$inject 当然没有道理。 “它工作”意味着它工作:D你可以手动检查结果缩小js文件,测试或在真正的应用程序。