Angular有一个功能,在某些情况下,它会尝试自动将参数与值匹配。 IE:
angular.module("foo").controller(function($scope){
//Angular will automatically fill in the value of $scope
}
当处理缩小时,这当然会遇到问题,这就是我们使用数组语法的原因。
是否可以禁用Angular的此功能?我问,因为我最近有一个错误,我的一些代码是以未明确的形式工作,但是没有缩小,根本原因最终成为一个意外被Angular自动填充的变量。
由于我知道我的所有代码都是(或者至少应该)使用数组语法编写,我想禁用此功能,以便我可以强制删除任何其他隐藏的错误。
答案 0 :(得分:2)
是的,并且启用了严格依赖注入,它被称为显式注入:
angular.module("foo").controller("SomeController", ["$scope", function($scope){
//Angular will automatically fill in the value of $scope
}]);
...或:
function SomeController($scope){
//Angular will automatically fill in the value of $scope
}
SomeController.$inject = ["$scope"];
angular.module("foo").controller("SomeController", SomeController);
因为我知道我的所有代码都是(或者至少应该)使用 数组语法我想禁用此功能,以便我可以 强迫任何其他隐藏的错误。
您可以使用严格依赖注入禁用自动参数匹配。请参阅Angular的production guide以获取更多详细信息:
<div ng-app="myApp" ng-strict-di>
<!-- your app here -->
</div>
...或:
angular.bootstrap(document, ['myApp'], {
strictDi: true
});