我目前正在重构我的代码,使其符合基于组件的体系结构(为了进一步迁移到Angular)。我真的需要在结尾加上'ngInject'字符串和$inject吗?
在我当前的代码中,我使用的是带有gulp的ng-annotate,它似乎处理了所有的依赖注入,以实现最小化。
class SecuritySettingsCtrl {
constructor($scope) {
'ngInject';
_self = this;
_self.$onInit = function () {
//....
}
};
}
SecuritySettingsCtrl.$inject = ['$scope'];
export default SecuritySettingsCtrl发布于 2018-08-20 23:18:41
您需要'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当然没有任何意义。"It works“意味着它可以工作:D你可以在result minified js文件中手动检查它,使用test或在真实的应用程序中。
https://stackoverflow.com/questions/51930397
复制相似问题