2014-12-06 13 views
9

otrzymuję następujący błąd w mojej przeglądarce:Moduł 'ngMockE2E' jest niedostępny! 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 

Moi app.js wygląda następująco:

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

    }); 

Am I czegoś brakuje?

+11

Czy ładujesz plik skryptu 'kątowego-mocks.js'? – dfsq

+0

Ho oh ... Myślę, że to jest problem .. pozwól mi szybko zainstalować altankę – Tiwaz89

+1

Tak, to był błąd. Dzięki! – Tiwaz89

Odpowiedz

1

Plik angular.mocks.js składa się z wielu modułów pomocnych w szyderstwie i testowaniu. Najczęściej używane to ngMock, ngMockE2E, które zapewniają mocks dla niektórych z najczęściej używanych komponentów, takich jak $timeout, $rootScope, $controller, $httpBackend ($ httpBackend jest częścią ngMockE2E).

Aby użyć dowolnego z tych modułów jako dependecy, należy załadować angular.mocks.js. Po prostu dodaj ten skrypt do pliku html, aby usunąć [$injector:modulerr], co jest błędem spowodowanym, gdy moduł dodany jako zależność nie został znaleziony lub jego plik nie został załadowany

0

Dodaję tylko do użycia $ httpBackend, więc tylko 'ngMocksE2E' moduł był niezbędny, więc zrobiłem:

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

export default angular.module('app', [ngMockE2EModuleName]); 
Powiązane problemy