当使用angular 1.2而不是1.07时,下面这段代码就不再有效了,为什么?

'use strict';

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

app.config(['$routeProvider', '$locationProvider',
    function($routeProvider, $locationProvider) {
        $locationProvider.html5Mode(true);
        $routeProvider.
        when('/', {
            templateUrl: 'part.html',
            controller: 'MyCtrl'
        }).
        otherwise({
            redirectTo: '/'
        });
    }
]);

问题出在注入器配置部分(app.config):

Uncaught Error: [$injector:modulerr] http://errors.angularjs.org/1.2.0rc1/$injector/modulerr?p0=muninn&p1=Error%…eapis.com%2Fajax%2Flibs%2Fangularjs%2F1.2.0rc1%2Fangular.min.js%3A31%3A252) 

如果我没记错的话,这个问题是从angular 1.1.6开始的。


当前回答

我刚刚经历了同样的错误,在我的情况下,这是由angular中的第二个参数引起的。模块丢失-希望这可以帮助有同样问题的人。

angular.module('MyApp');

angular。模块(’MyApp’,[]);

其他回答

除了下面的答案,如果你在控制台([$injector:nomod], MINERR_ASSET:22)中出现这个错误,但一切似乎都正常工作,请确保你的index.html中没有重复的include。

因为如果您有使用此模块的文件的重复包含,并且包含在具有实际模块声明的文件之前,也会引发此错误。

约翰爸爸在这个相当晦涩的评论中提供了我的问题:有时当你得到这个错误时,这意味着你丢失了一个文件。其他时候,它意味着模块是在使用之后定义的。一种简单的解决方法是将模块文件命名为*.module.js并首先加载这些文件。

我有这个问题,检查我的代码行后,我看到了这个

 <textarea class="form-control" type="text" ng-model="WallDesc" placeholder="Enter Your Description"/>

我只是把它改成了

     <textarea class="form-control" type="text" ng-model="WallDesc" placeholder="Enter Your Description"></textarea>

这是有效的。 所以检查你的标签。

这是注入器错误。你可能使用了很多JavaScript文件,所以注入器可能会丢失。

这里有一些:

var app = angular.module('app', 
    ['ngSanitize', 'ui.router', 'pascalprecht.translate', 'ngResource', 
     'ngMaterial', 'angularMoment','md.data.table', 'angularFileUpload', 
     'ngMessages', 'ui.utils.masks', 'angular-sortable-view',          
     'mdPickers','ngDraggable','as.sortable', 'ngAnimate', 'ngTouch']
);

请检查你需要在app.js中插入的注入器

有时,当您在项目之间切换并在同一个端口上一个接一个地运行项目时,我看到过这种错误。在这种情况下,去chrome开发工具>网络,并尝试检查实际编写的js文件:如果文件与工作区匹配。要解决此问题,请选择“在网络下禁用缓存”。