AngularJS错误:[$ injector:modulerr]无处不在

时间:2017-01-30 08:02:19

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

我正在学习使用Google Maps集成创建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)

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

EDIT。这是' 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) {

2 个答案:

答案 0 :(得分: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问了这个问题:

  

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

你回答:

  

@devqon是的。我觉得这个案子很奇怪,因为到现在为止它已经好几周了。

似乎并非如此。

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

答案 1 :(得分:0)

我解决了这个问题。原因是缺少&#39; v = 3&#39;在用于加载Google Maps API的脚本的src中。我仍然不知道为什么会这样,因为项目以前工作正常。