下面的超文本传输协议请求,被ngMockE2E模块"$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};
});
}]);这是一个live example on codepen
发布于 2016-08-04 04:41:52
它不工作的原因是.respond内部的回调没有返回正确的数据,随后会静默失败。按如下方式进行更改:
app.run(['$httpBackend', function($httpBackend) {
$httpBackend
.whenGET(/^\/test/)
.respond(function(method, path) {
console.log(method, path);
return [200, {method: method, path: path}];
});
}]);https://stackoverflow.com/questions/38752557
复制相似问题