首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用$httpBackend模拟AngularJS响应

使用$httpBackend模拟AngularJS响应
EN

Stack Overflow用户
提问于 2016-08-04 03:58:07
回答 1查看 45关注 0票数 0

下面的超文本传输协议请求,被ngMockE2E模块"$httpBackend“截获,永远不会完成。

代码语言:javascript
复制
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

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-08-04 04:41:52

它不工作的原因是.respond内部的回调没有返回正确的数据,随后会静默失败。按如下方式进行更改:

代码语言:javascript
复制
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

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/38752557

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档