64

我对 Angular 相当陌生,并且将它与 JSON api 文件一起使用。为了测试,我正在尝试使用免费的 github api(我的函数名称是用于稍后我将使用的不同的 json api)。我只是想看看我的函数是否正在使用console.log(),但我在控制台中收到此错误。

未捕获的错误:[$injector:modulerr] 无法实例化模块 MesaViewer,原因是:错误:[$injector:nomod] 模块“MesaViewer”不可用!您要么拼错了模块名称,要么忘记加载它。如果注册模块,请确保将依赖项指定为第二个参数。

MesaViewer在两者中都拼写完全相同,并且在第二行中可以看到依赖关系!

var app = angular.module("MesaViewer");
var MainController = function($scope, $location, $http, $routeParams) {

我做错了什么?这是我的笨蛋:http: //plnkr.co/edit/sZPaFbzbOB6AmVCLL1vq

4

9 回答 9

101

它应该是

var app = angular.module("MesaViewer", []);

这是定义模块所需的语法,并且需要数组来显示它没有依赖关系。

您使用

angular.module("MesaViewer");

引用已定义的模块时的语法。

于 2015-07-13T23:01:48.350 回答
16

您不正确地声明了您的主模块,它在创建模块时需要第二个依赖项数组参数,否则它是对现有模块的引用

改变:

var app = angular.module("MesaViewer");

至:

var app = angular.module("MesaViewer",[]);

Working Version

于 2015-07-13T23:03:01.037 回答
11

我有同样的错误并修复它。事实证明这是一个愚蠢的理由。

这是罪魁祸首:<script src="app.js"/>

使固定:<script src="app.js"></script>

确保您的脚本标签正确结束!

于 2017-07-18T16:30:16.917 回答
8

当我出于不同的原因遇到相同的错误时,我发现了这个问题。

我的问题是我的 Gulp 没有意识到我已经声明了一个新模块,我需要手动重新运行 Gulp。

于 2017-01-25T19:24:10.603 回答
5

我有同样的问题,但我解决了在 angular.min.js 之前添加 jquery.min.js。

于 2017-05-28T21:27:14.803 回答
4

当我的服务声明位于非调用函数 (IIFE) 中时,出现此错误。下面的最后一行没有额外的 () 来运行和定义服务。

(function() {
    "use strict";

    angular.module("reviewService", [])
        .service("reviewService", reviewService);

    function reviewService($http, $q, $log) {
        //
    }
}());
于 2020-03-03T23:11:33.527 回答
4

确保首先在 index.html 中插入模块和控制器。然后在您的模块中使用此代码 var app = angular.module("MesaViewer", []);

于 2018-09-06T09:58:00.693 回答
1

使用AngularJS1.6.9+

还有一件事,当你声明变量名与模块名不同时也会发生这种情况。

var indexPageApp = angular.module('indexApp', []);

为了摆脱这个错误,

错误:[$injector:nomod] 模块“indexPageApp”不可用!您要么拼错了模块名称,要么忘记加载它。如果注册模块,请确保将依赖项指定为第二个参数。

更改类似于 var 声明名称的模块名称,反之亦然 -

var indexPageApp = angular.module('indexPageApp', []);
于 2018-06-30T14:37:51.900 回答
1

我有同样的错误,但我解决了,这是 AngularJS 提供程序中的语法错误

于 2017-07-03T06:45:29.377 回答