【问题标题】:AngularJS: uncaught object because of services and modules dependenciesAngularJS:由于服务和模块依赖而未捕获的对象
【发布时间】:2014-08-05 08:21:57
【问题描述】:

我有一个带有“MapService”服务的“maps-services”模块,如下所示:

angular.module('maps-services', [])
.service('MapService', [$log, function($log) {
    this.initMap = function() {
    }
    this.updateMap = function() {   
    }
}]);

I also have a 'maps' module depending on 'maps-services' as below:
angular.module('maps', [
   'maps-services'
]);

当我依赖另一个模块中的“地图”时,我收到一个未捕获的对象错误消息:

"[$injector:nomod] 模块 'ngLocale' 不可用!您拼错了模块名称或忘记加载它。如果注册模块,请确保将依赖项指定为第二个参数。 http://errors.angularjs.org/1.3.0-beta.11/$injector/nomod?p0=ngLocale"

我不明白发生了什么以及如何调试模块加载以更好地了解问题所在。

你能帮帮我吗?

问候。

【问题讨论】:

  • 尝试将$log改成字符串.service('MapService', ['$log', function($log) {
  • 奇怪。您是否在视图中的任何位置使用 ng-locale 指令?
  • 我没有在代码中的任何地方使用 ngLocale。
  • 你有没有机会找到解决办法?
  • 我遇到了同样的问题。仅发生在我的生产服务器(数字海洋和 heroku)上,但在本地不是问题。快把我逼疯了。

标签: angularjs dependency-injection angularjs-module


【解决方案1】:

80 年代编译器风格

这个异常信息让我想起了 80 年代编译器用来抛出的错误信息。

基本上当 Angular 抛出时:

模块“ngLocale”不可用!

意思是说:

您的某个模块未加载(但未加载 ngLocale)。

请参阅thisthis 了解更多信息。

现在为什么没有你的 模块被加载,或者它是什么模块,由你来解决。就我而言,有这个

angular.module( 'treeDemoApp' )

而不是这个

angular.module( 'treeDemoApp', [] )

足以让 Angular 抛出这个消息。但是你的代码显然有[]

Chrome 错误?

有一些建议(12)认为这是由于 chrome 中的错误造成的。

【讨论】:

    猜你喜欢
    • 2019-01-11
    • 1970-01-01
    • 2019-09-29
    • 1970-01-01
    • 2014-04-28
    • 2015-10-06
    • 2020-10-06
    • 1970-01-01
    • 2015-07-21
    相关资源
    最近更新 更多