11

在我的浏览器中出现以下错误:

Uncaught Error: [$injector:modulerr] Failed to instantiate module sayHiApp due to:
Error: [$injector:modulerr] Failed to instantiate module ngMockE2E due to:
Error: [$injector:nomod] Module 'ngMockE2E' is not available! You either misspelled the module name or forgot to load it. If registering a module ensure that you specify the dependencies as the second argument.
http://errors.angularjs.org/1.2.15/$injector/nomod?p0=ngMockE2E
    at http://127.0.0.1:9000/bower_components/angular/angular.js:78:12
    at http://127.0.0.1:9000/bower_components/angular/angular.js:1611:17
    at ensure (http://127.0.0.1:9000/bower_components/angular/angular.js:1535:38)
    at module (http://127.0.0.1:9000/bower_components/angular/angular.js:1609:14)
    at http://127.0.0.1:9000/bower_components/angular/angular.js:3717:22
    at Array.forEach (native)
    at forEach (http://127.0.0.1:9000/bower_components/angular/angular.js:323:11)
    at loadModules (http://127.0.0.1:9000/bower_components/angular/angular.js:3711:5)
    at http://127.0.0.1:9000/bower_components/angular/angular.js:3718:40
    at Array.forEach (native)
http://errors.angularjs.org/1.2.15/$injector/modulerr?p0=ngMockE2E&p1=Error…ngular%2Fangular.js%3A3718%3A40%0A%20%20%20%20at%20Array.forEach%20(native)
    at http://127.0.0.1:9000/bower_components/angular/angular.js:78:12
    at http://127.0.0.1:9000/bower_components/angular/angular.js:3745:15
    at Array.forEach (native)
    at forEach (http://127.0.0.1:9000/bower_components/angular/angular.js:323:11)
    at loadModules (http://127.0.0.1:9000/bower_components/angular/angular.js:3711:5)
    at http://127.0.0.1:9000/bower_components/angular/angular.js:3718:40
    at Array.forEach (native)
    at forEach (http://127.0.0.1:9000/bower_components/angular/angular.js:323:11)
    at loadModules (http://127.0.0.1:9000/bower_components/angular/angular.js:3711:5)
    at createInjector (http://127.0.0.1:9000/bower_components/angular/angular.js:3651:11)
http://errors.angularjs.org/1.2.15/$injector/modulerr?p0=sayHiApp&p1=Error%…F%2F127.0.0.1%3A9000%2Fbower_components%2Fangular%2Fangular.js%3A3651%3A11) angular.js:78

我的 app.js 看起来像这样:

'use strict';

angular
  .module('sayHiApp', [
    'ngCookies',
    'ngMockE2E',
    'ngResource',
    'ngSanitize',
    'ngRoute'
  ])
  .config(function ($routeProvider) {
    $routeProvider
      .when('/', {
        templateUrl: 'views/main.html',
        controller: 'MainCtrl'
      })
      .otherwise({
        redirectTo: '/'
      });
  })
  .run(function($httpBackend) {

    var name = '';

    $httpBackend.whenPOST('/name').respond(function(method, url, data) {
      name = angular.fromJson(data);
      return [200, name, {}];
    });

    $httpBackend.whenGET('/name').respond(name);

  });

我错过了什么吗?

4

2 回答 2

2

angular.mocks.js文件由许多有助于模拟和测试的模块组成。最常用的是ngMockngMockE2E它为一些最常用的组件提供模拟,例如$timeout, $rootScope, $controller, $httpBackend($httpBackend 是 ngMockE2E 的一部分)。

为了将这些模块中的任何一个用作依赖项,您需要加载angular.mocks.js. 只需在您的 html 文件中添加此脚本即可删除[$injector:modulerr]当未找到作为依赖项添加的模块或其文件尚未加载时导致的错误

于 2016-04-27T19:39:15.243 回答
2

我只添加使用 $httpBackend,所以只需要 'ngMocksE2E' 模块,所以我做了:

import angular from 'angular';
// it exports moduleName that is 'ngMockE2E'
import ngMockE2EModuleName from 'angular-mocks/ngMocksE2E.js';

export default angular.module('app', [ngMockE2EModuleName]);
于 2017-11-21T18:52:40.113 回答