AngularJS:将依赖项注入(inject)主模块或 Controller ?

标签 angularjs

我对某事感到困惑。一些依赖项必须注入(inject)到主模块中。例如:

angular.module("app", ["ui.router", "ui.bootstrap", "toaster"]);

而其他一些依赖项可以只注入(inject)到 Controller 中,但不需要注入(inject)到主模块中。例如:

angular.module("app").controller("newCtrl", ["$q", newCtrl);

我很难理解为什么。任何帮助将不胜感激。

最佳答案

$q 核心 ng 模块内的服务,根据 documentation .

当加载和解析 angular.js 文件时,ng 模块中的所有服务都会被引导和注册。这允许您将它们注入(inject)应用程序中的任何位置。

但是,上面列出的三个示例都是外部的模块化依赖项。它们需要显式注册到您的应用程序中,以便当 $injector 服务尝试解析它们时,其中的组件可用。

关于AngularJS:将依赖项注入(inject)主模块或 Controller ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35070751/

相关文章:

javascript - 有没有办法有条件地将数据从 `ng-repeat` 传递到其他元素?

javascript - 使用 Angular 操作具有不同 id 的多个 div

angularjs - 日期选择器未绑定(bind)格式化值

angularjs - 在 Angular 模板化之后捕获页面源(HTML 快照)

javascript - 如何将变量从angularJS插入到jade模板(node.js)中的字符串

javascript - Angular 1.5 范围变量在 PouchDB 响应函数中不起作用

html - 与 AngularJS 相比,在 Polymer 中使用创建自定义 HTML5 元素/小部件的优缺点是什么

angularjs - Protractor - 在不同浏览器上并行运行多个测试

javascript - angularjs ng-repeat 隐藏带有点击事件的元素

javascript - AngularJS Controller