由ngMockE2E模块" $ httpBackend拦截的以下HTTP请求永远不会完成。从$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};
});
}]);
答案 0 :(得分:1)
它不起作用的原因是.respond
内的回调没有返回正确的数据,随后无声地失败。
改变如下:
app.run(['$httpBackend', function($httpBackend) {
$httpBackend
.whenGET(/^\/test/)
.respond(function(method, path) {
console.log(method, path);
return [200, {method: method, path: path}];
});
}]);