首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >我真的需要写“ngInject”吗?

我真的需要写“ngInject”吗?
EN

Stack Overflow用户
提问于 2018-08-20 20:06:37
回答 1查看 681关注 0票数 0

我目前正在重构我的代码,使其符合基于组件的体系结构(为了进一步迁移到Angular)。我真的需要在结尾加上'ngInject'字符串和$inject吗?

在我当前的代码中,我使用的是带有gulp的ng-annotate,它似乎处理了所有的依赖注入,以实现最小化。

代码语言:javascript
复制
   class SecuritySettingsCtrl {
    constructor($scope) {
        'ngInject';
        _self = this;

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

        };
    }

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

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-08-20 23:18:41

您需要'ngInject‘(如果配置正确且工作正常)或.$inject = ...,或导出默认的'$scope',...

一般来说,JavaScript微型器对Angular一无所知。所以它们变小了

代码语言:javascript
复制
function ctrl($scope) { $scope.name = 'test'}

类似这样的东西

代码语言:javascript
复制
function c(a) { a.name = 'test'}

如果您添加ng-anotate或angularjs-annotate或任何您喜欢的插件,它将为您添加ctrl.$inject = ['$scope'],因此您拥有:

代码语言:javascript
复制
function c(a) { a.name = 'test'}
c.$inject = ['$scope']

如果你的缩小的应用程序正常工作--你正确地配置了ngInject (或其他任何东西)。

附注:使用'ngInject‘和手动注入SecuritySettingsCtrl.$inject当然没有任何意义。"It works“意味着它可以工作:D你可以在result minified js文件中手动检查它,使用test或在真实的应用程序中。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51930397

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档