模块不可用,拼写错误或忘记加载(但我没有)

时间:2015-07-13 22:55:55

标签: javascript json angularjs module angularjs-injector

我对角度相当新,并将其与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

9 个答案:

答案 0 :(得分:83)

应该是

shell_exec

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

您使用

var app = angular.module("MesaViewer", []);
当您引用已经定义的模块时,

语法。

答案 1 :(得分:12)

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

变化:

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

要:

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

Working Version

答案 2 :(得分:8)

我遇到了同样的错误并修复了它。 事实证明这是一个愚蠢的原因。

  

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

     

修复:<script src="app.js"></script>

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

答案 3 :(得分:6)

当我因不同原因得到同样的错误时,我发现了这个问题。

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

答案 4 :(得分:4)

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

答案 5 :(得分:1)

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

答案 6 :(得分:1)

使用AngularJS 1.6.9 +

还有另外一件事,当您声明变量名称与模块名称不同时也会发生。

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

要消除此错误,

  

错误:[$ injector:nomod]模块'indexPageApp'不可用!您   拼写错误的模块名称或忘记加载它。如果注册   一个模块,确保您将依赖项指定为第二个   论点。

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

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

答案 7 :(得分:1)

确保首先将模块和控制器插入index.html中。 然后在您的模块url = "stackoverflow.com/questions/ask/format/return" URL = url.split("/"); console.log(URL[URL.length-1]) // return console.log(URL[URL.length-2]) //format

中使用此代码

答案 8 :(得分:1)

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

(function() {
    "use strict";

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

    function reviewService($http, $q, $log) {
        //
    }
}());