我正在尝试添加 ng-strict-di (以帮助在 Controller /指令等未正确完成 DI 时抛出错误)。
我有一个 globalApp 模块
,其中包含各种辅助指令/httpInterceptors 等。是否可以以某种方式将其添加到那里?
我找到了这个解决方案,但这个模块永远不会引导到页面,它只是注入(inject)到页面上的子模块。
angular.bootstrap(document, ['globalApp'], {
strictDi: true
});
但这只是中断,因为该页面已经使用 Angular 在每个特定页面上通过 ng-app="app"
进行引导。
还有什么办法可以实现这一目标?
最佳答案
当您将 ng-strict-di
添加到应用程序时,它会强制显式注释应用程序的所有依赖项(使用的)。
所以,如果你有:
<body ng-app="app">
<foo></foo>
</body>
在另一个模块中定义 foo
并且没有显式注释:
anotherModule.directive("foo", function(){
return {
template: "{{foo}}",
controller: function($scope){
$scope.foo = "foo"; // $scope is not explicitly annotated
}
};
});
那么这会引发错误。
换句话说,您不需要为每个模块添加 ng-strict-di - 只需在使用该模块中的服务、 Controller 、指令等的应用程序上即可。
关于javascript - 在全局范围内强制 ng-strict-di,而不仅仅是在 ng-app 级别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28610794/