无法在Angular js中实例化模块错误

时间:2013-11-26 06:46:24

标签: javascript angularjs

我遇到以下错误,其根本原因是模块'ngRoute'不可用

  

未捕获错误:[$ injector:modulerr]无法实例化模块   Amail由于:

     

错误:[$ injector:modulerr]无法实例化模块ngRoute到期   到:

     

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

Javascript代码:

var amailServices = angular.module('Amail',['ngRoute']);
function emailRouteConfig($routeProvider) {
$routeProvider.
    when('/', {
        controller: ListController,
        templateUrl : 'list.html'}).

    when('/view/:id',{
        controller : DetailsController,
        templateUrl:'detail.html'}).

    otherwise({
        redirectTo:'/'
    });
}
amailServices.config(emailRouteConfig);

如何解决此问题

6 个答案:

答案 0 :(得分:46)

您需要在HTML中加入angular-route.js

<script src="angular-route.js">

http://docs.angularjs.org/api/ngRoute

答案 1 :(得分:2)

或文件的缩小版......

<script src="angular-route.min.js"></script>

有关此here的更多信息:

&#34;当模块由于某些异常而无法加载时,会发生此错误。上面的错误消息应该提供额外的上下文。&#34;

&#34;在AngularJS 1.2.0及更高版本中,ngRoute已移至其自己的模块。如果在升级到1.2.x后出现此错误,请确保已安装ngRoute。&#34;

Angularjs docs

中的Error: $injector:modulerr Module Error部分下列出

答案 2 :(得分:1)

对我来说,解决方法是修复语法错误:

在angular.module函数中删除不需要的半冒号

答案 3 :(得分:1)

由于未将脚本指向正确的路径,我收到此错误。因此,请确保您指向html文件中的正确路径。

答案 4 :(得分:1)

对我来说,由于我的浏览器使用包含该模块的js文件的缓存版本而发生错误。清除缓存并重新加载页面解决了问题。

答案 5 :(得分:0)

这样的错误发生在,

1. You misspell module name which you injected.
2. If you missed to include js file of that module.

有时候人们写js文件名而不是我们注入的模块名。

在这些情况下,会发生角度尝试查找方括号[]中提供的模块。如果它没有找到模块,则会抛出错误。