在我的 Angular JS 应用程序中,我想知道控制器中使用了哪些服务、模块?

In my Angular JS application, I want to get know which services, modules are used in controllers?

在我的 Angular JS 应用程序中,我有 30 个控制器、120 个服务、60 个指令、20 个过滤器、10 个模块。如何在调用 - called/injected services/factories 关系中引入所有四个人之间的关系?

例如: ControllerA 中注入了 Service1、Service2 等。 Service1 使用 Service7、Service8 等。 Service2 使用 Filter1、Filter7 等

我需要将这四个保留在其中来构建一个矩阵。

随着代码的发展,这有助于我在非常高的层次上理解代码。

我想是的 - 我们可以从我们的应用程序中获取注册服务。 在 angular 中,module 包含 _invokeQueue 数组,其中包含应用程序中所有服务的列表。所以你可以遍历 _invokeQueue.

angular.module('sampleApp')['_invokeQueue'].forEach(function(value){ 
    console.log(value[1] + ": " + value[2][0]);
})

与其从头开始,我建议您看一下这些 npm 模块之一。这些以图形格式生成报告。您可以将其添加为 CI 构建步骤的一部分,以生成架构图作为每个构建的工件。

https://github.com/lucalanca/grunt-angular-architecture-graph

https://github.com/vogloblinsky/gulp-angular-architecture-graph

这些 npm 包要求您在 CI 代理中安装 GraphZViz。

还有一些 Google Chrome 扩展,例如 AngularJS Batarag 和 AngularJS Graph,它们有助于可视化依赖关系。