我正在尝试在大型AngularJS项目中调试缺少的提供程序。错误是缺少'dProvider'。它只发生在缩小的代码版本上,这是有道理的,因为我们没有'd'控制器,工厂或服务。我无法找到导致此问题的原因,并且在function(a,b,c,d)
之类的内容中搜索缩小的代码尚未产生任何结果。有没有办法强制只在Angular中显式依赖注入?好像我可以强迫这个,我可以在开发环境中发现问题。
答案 0 :(得分:7)
yippee的!从Angular 1.3.1开始,您可以关闭隐式依赖注入!
从代码中,使用strictDi
配置属性:
angular.bootstrap(document, ['myApp'], {
strictDi: true
});
或者从模板中,使用ng-strict-di
指令:
<html ng-app="myApp" ng-strict-di>
答案 1 :(得分:0)
它可能是像这样定义的控制器/服务
app.controller('myCtrl', function($scope){
...
})
而不是更安全的
app.controller('myCtrl', ['$scope', function($scope){
...
}])
我没有一个万无一失的答案,但也许你可以搜索&#39;,功能(,如果你很幸运,你会找到罪魁祸首。如果类似的东西不起作用,源地图可能是要走的路。
答案 2 :(得分:0)
我最终选择性地评论了我的部分HTML,直到我确定问题发生的位置。事实证明这是一个angular-ui-bootstrap issue。