【问题标题】:AngularJS Error: [$injector:modulerr] came out of nowhereAngularJS 错误:[$injector:modulerr] 不知从何而来
【发布时间】:2017-01-31 23:02:51
【问题描述】:

我正在学习使用 Google 地图集成创建 MEAN 堆栈项目的教程。我完成了这个项目,没有任何问题,因此,我停止了它的工作。当我回来检查它时,它不再起作用了。我没有用代码改变任何东西。我什至从我的存储库中提取了一个以前工作的提交,但是错误

[$injector:modulerr] http://errors.angularjs.org/1.2.25/$injector/modulerr?p0=scotchApp&p1=Error…gleapis.com%2Fajax%2Flibs%2Fangularjs%2F1.2.25%2Fangular.min.js%3A18%3A387)

还在。我真的不知道出了什么问题,因为这以前工作正常。我希望有人可以提供帮助。

编辑。这是我项目的“gservice”服务的一部分。

 // Creates the gservice factory.
// This will be the primary means by which we interact with Google Maps
 angular.module('gservice', [])
     .factory('gservice', function($rootScope, $http) {

【问题讨论】:

  • 把代码贴在这里
  • 通常,AngularJS 中的这种错误是由源代码缩小或丑化引起的。你使用的是 webpack、gulp 还是 Rails?
  • @IzumiSy,不,我不是。 :)
  • mainController 看起来缺少 aservice 的 DI
  • 声明gservice模块的js文件是否包含在之前声明scotchApp模块的js文件?

标签: angularjs node.js google-maps mean-stack


【解决方案1】:

问题出在这里:components.html

<!-- Client Scripts -->
<script src="../app/client/routes/script.js"></script>
<script src="../app/client/service/gservice.js"></script>
<script src="../app/client/service/aservice.js"></script>

您的scotchApp 模块在script.js 中定义为:

 var scotchApp = angular.module('scotchApp', ['ngRoute',
     'ngCookies',
     'controllerStoreDetail', 'controllerStoreCategory',
     'controllerStoreQuery', 'controllerUserDetail',
     'controllerUserAuthentication', 'geolocation',
     'gservice', 'aservice',
     'datatables'
 ]);

它依赖于gserviceaservice 等。但是这些文件是在script.js 之后加载的。因此,在加载您的模块 (script.js) 时,angular 无法找到这些服务的定义。您需要确保在script.js 之前加载了所有依赖项。

@devqon 提出了这个问题:

你声明gservice模块的js文件是否包含在之前 js 文件中声明了 scotchApp 模块?

你的回答:

@devqon 是的。我真的觉得这个案例很奇怪,因为直到现在它已经运行了好几个星期。

似乎并非如此。

纠正你加载JS文件的顺序,错误就会消失。

【讨论】:

  • 错误依然存在。我已经完成了你所说的,我只是没有将更改推送到 repo。
  • 在这种情况下,我猜人们真的需要查看您网站上发生的错误,以便他们可以调试并帮助您。 stackoverflow.com/help/mcve
  • 你可以从我给你的仓库运行项目。
  • 查看存储库这确实是对您的错误的合乎逻辑的解释
  • @cryoheart 1.我没有NodeJS环境。 2.期望别人用你的代码库设置应用程序来解决你的问题太多了,恕我直言。 3.如果您有 1 个未提交的更改,可能还有更多。没有人会想要调试不能保证是导致问题的代码。 4.Google 服务通常对您可以发送的请求数量有限制和配额。其中一些限制也可能取决于原始服务器。因此,即使有人使用最新的代码库设置自己的环境,他们也可能不会 得到你得到的错误。这就是我首先要求查看错误的原因
【解决方案2】:

我解决了这个问题。原因是用于加载 Google Maps API 的脚本的 src 中缺少“v=3”。我仍然不明白为什么会这样,因为该项目以前运行正常。

【讨论】:

    猜你喜欢
    • 2017-08-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-10-17
    • 2016-03-12
    • 2015-08-21
    相关资源
    最近更新 更多