2016-08-03 9 views
0

Die folgende HTTP-Anforderung, abgefangen von der ngMockE2E Modul „$ httpBackend spöttisch, wird nie abgeschlossen. Was ist der richtige Weg ist, eine Antwort von $httpBackend?

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

app.controller('Foo', function(MyHttpService, $scope) { 
    MyHttpService.get().then(function(data) { 
    $scope.async_data = data; 
    }); 
}); 

app.factory('MyHttpService', function($http, $q) { 
    return { 
    get: function() { 
     console.log('MyHttpService.get()'); 
     return $http.get('/test').then(function(data) { 
     console.log('$http.get()', data); 
     return data; 
     }); 
    } 
    } 
}); 

app.run(['$httpBackend', function($httpBackend) { 
    $httpBackend 
    .whenGET(/^\/test/) 
    .respond(function(method, path) { 
     console.log(method, path); 
     return {method: method, path: path}; 
    }); 
}]); 

Hier zu bekommen, ist ein live example on codepen

Antwort

1

der Grund ist es nicht der Fall funktioniert, dass der Rückruf innerhalb .respond nicht die richtigen Daten zurückgibt und nicht anschließend still ändern sie es wie folgt:.

app.run(['$httpBackend', function($httpBackend) { 
    $httpBackend 
    .whenGET(/^\/test/) 
    .respond(function(method, path) { 
     console.log(method, path); 
     return [200, {method: method, path: path}]; 
    }); 
}]); 

Here a working codepen

Verwandte Themen