代码重构后的AngularJS未知提供程序

时间:2018-01-01 09:11:19

标签: angularjs angularjs-provider

我有一个很棒的应用,直到我决定重构代码并使用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标准的代码)。关于这里可能出现什么问题的任何想法?

1 个答案:

答案 0 :(得分:1)

正如@shaunhusain所注意到的那样,lodash提供程序在我的index.html中丢失了。我修复了我的Gulpfile,以便注入文件,并且它可以正常工作。