javascript - 在全局范围内强制 ng-strict-di,而不仅仅是在 ng-app 级别

标签 javascript angularjs dependency-injection

我正在尝试添加 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/

相关文章:

javascript - 如何在页面加载时增加浏览器缩放级别?

javascript - 当用户尝试删除 indexedDB 数据库时,有没有办法执行函数?

javascript - 如何使用 javascript 捕获 mailto 并重定向到 gmail 等浏览器邮件?

angularjs - 如何根据ng-change更新ng-class?

java - 如何防止 mvn install 创建 WEB-INF/lib 和类?或者说我为什么想要它?

javascript - Angular 继承注入(inject)不同的实例

c# - 基于通用类型约束在 Autofac 中有条件地应用通用装饰器

javascript - 删除元素及其子元素的所有 JavaScript 事件监听器?

javascript - 以 Angular 生成动态下拉列表

asp.net-web-api - 使用 Unity 根据其使用者/上下文依赖项注入(inject)特定依赖项