2014-12-06 8 views
9

Ottenere il seguente errore nel mio browser:Module 'ngMockE2E' non è disponibile! AngularJS

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 

miei app.js assomiglia a questo:

'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); 

    }); 

mi sto perdendo qualcosa?

+11

Stai caricando il file di script 'angular-mocks.js'? – dfsq

+0

Ho oh ... Penso che sia il problema .. fammi subito installare bave – Tiwaz89

+1

Sì, questo è stato l'errore. Grazie! – Tiwaz89

risposta

1

Il file angular.mocks.js è costituito da un numero di moduli utili in simulazione e test. I più utilizzati sono ngMock, ngMockE2E, che forniscono i mock per alcuni dei componenti più utilizzati come $timeout, $rootScope, $controller, $httpBackend ($ httpBackend è parte di ngMockE2E).

Per utilizzare uno di questi moduli come dependecy è necessario caricare angular.mocks.js. Basta aggiungere questo script nel file html per rimuovere lo [$injector:modulerr] che è un errore causato quando il modulo aggiunto come dipendenza non viene trovato o il suo file non è stato caricato

0

Aggiungo solo per utilizzare $ httpBackend, quindi solo 'ngMocksE2E' modulo era necessario, così ho fatto:

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

export default angular.module('app', [ngMockE2EModuleName]);