关闭AngularJS中的隐式依赖注入

时间:2014-02-19 21:05:53

标签: javascript angularjs dependency-injection

我正在尝试在大型AngularJS项目中调试缺少的提供程序。错误是缺少'dProvider'。它只发生在缩小的代码版本上,这是有道理的,因为我们没有'd'控制器,工厂或服务。我无法找到导致此问题的原因,并且在function(a,b,c,d)之类的内容中搜索缩小的代码尚未产生任何结果。有没有办法强制只在Angular中显式依赖注入?好像我可以强迫这个,我可以在开发环境中发现问题。

3 个答案:

答案 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