AngularJS 代码重构后未知提供者
AngularJS unknown provider after code refactoring
我有一个运行良好的应用程序,直到我决定重构代码并将 Gulp 用于我的项目。这是我得到的错误:
Error: [$injector:unpr] Unknown provider: _Provider <- _ <- utilsFactory <- storageService <- httpRequestInterceptor <- $http <- $templateFactory <- $view <- $state
由于我不确定如何阅读此错误以及它们是否都有问题或者只是其中之一,因此在启动我的应用程序时,我会在以下两个地方使用其中一些提供程序:
app.run(function($rootScope, $state, storageService, modalsFactory, appFactory, _) { ... }
并且:
angular.module("mediaControl").controller("loginCtrl", function ($state, $translate, authService, utilsFactory, appFactory, storageService) { ... }
在我的 index.html 文件中,我有:
<!-- inject:js -->
<script src="src/mediaControl.js"></script>
...
<script src="src/login/providers/httpRequestInterceptor.service.js"></script>
...
<script src="src/common/providers/utils.factory.js"></script>
<script src="src/common/providers/storage.service.js"></script>
...
<script src="src/login/login.controller.js"></script>
...
<!-- endinject -->
我checked/did:
- 检查 Gulp 是否将所有必需的 js 文件放入 index.html 并且顺序正确(对我来说没问题)
- 检查提供者的名称(虽然我在重构期间没有更改它们)
- 尝试从 loginCtrl 和 app.run 中删除我的自定义提供程序(我这样做时仍然有同样的错误)
我阅读了文档和一些 SO 问题,但考虑到我的应用程序在重构(包括重组我的文件结构、重命名文件并启动使用 ES6 标准重写代码)。知道这里可能出什么问题吗?
正如@shaunhusain 所注意到的,我的 index.html 中缺少 lodash 提供程序。我修复了我的 Gulpfile,以便该文件也被注入,并且它有效。
我有一个运行良好的应用程序,直到我决定重构代码并将 Gulp 用于我的项目。这是我得到的错误:
Error: [$injector:unpr] Unknown provider: _Provider <- _ <- utilsFactory <- storageService <- httpRequestInterceptor <- $http <- $templateFactory <- $view <- $state
由于我不确定如何阅读此错误以及它们是否都有问题或者只是其中之一,因此在启动我的应用程序时,我会在以下两个地方使用其中一些提供程序:
app.run(function($rootScope, $state, storageService, modalsFactory, appFactory, _) { ... }
并且:
angular.module("mediaControl").controller("loginCtrl", function ($state, $translate, authService, utilsFactory, appFactory, storageService) { ... }
在我的 index.html 文件中,我有:
<!-- inject:js -->
<script src="src/mediaControl.js"></script>
...
<script src="src/login/providers/httpRequestInterceptor.service.js"></script>
...
<script src="src/common/providers/utils.factory.js"></script>
<script src="src/common/providers/storage.service.js"></script>
...
<script src="src/login/login.controller.js"></script>
...
<!-- endinject -->
我checked/did:
- 检查 Gulp 是否将所有必需的 js 文件放入 index.html 并且顺序正确(对我来说没问题)
- 检查提供者的名称(虽然我在重构期间没有更改它们)
- 尝试从 loginCtrl 和 app.run 中删除我的自定义提供程序(我这样做时仍然有同样的错误)
我阅读了文档和一些 SO 问题,但考虑到我的应用程序在重构(包括重组我的文件结构、重命名文件并启动使用 ES6 标准重写代码)。知道这里可能出什么问题吗?
正如@shaunhusain 所注意到的,我的 index.html 中缺少 lodash 提供程序。我修复了我的 Gulpfile,以便该文件也被注入,并且它有效。