0

我有一个运行良好的应用程序,直到我决定重构代码并将 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 -->

我检查/做了什么:

  • 检查 Gulp 是否将所有必要的 js 文件放在 index.html 中并且顺序正确(对我来说似乎没问题)
  • 检查提供者的名称(虽然我在重构期间没有更改它们)
  • 尝试从 loginCtrl 和 app.run 中删除我的自定义提供程序(执行此操作时我仍然遇到相同的错误)

我阅读了文档和一些 SO 问题,但考虑到我的应用程序在重构之前工作(包括重新组织我的文件结构、重命名文件并开始使用重写代码),我没有看到任何我会做错的事情ES6 标准)。关于这里可能有什么问题的任何想法?

4

1 回答 1

1

正如@shaunhusain 所注意到的,我的 index.html 中缺少 lodash 提供程序。我修复了我的 Gulpfile,以便该文件也被注入,并且它可以工作。

于 2018-01-01T09:42:53.237 回答