我正在学习使用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) {
答案 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'
]);
它依赖于gservice
,aservice
等。但这些文件是在script.js
之后加载的。因此,在加载模块(script.js
)时,angular无法找到这些服务的定义。您需要确保在script.js
之前加载所有依赖项。
@devqon问了这个问题:
你的js文件是否声明了gservice模块之前 声明scotchApp模块的js文件?
你回答:
@devqon是的。我觉得这个案子很奇怪,因为到现在为止它已经好几周了。
似乎并非如此。
纠正加载JS文件的顺序,错误将消失。
答案 1 :(得分:0)
我解决了这个问题。原因是缺少&#39; v = 3&#39;在用于加载Google Maps API的脚本的src中。我仍然不知道为什么会这样,因为项目以前工作正常。