在Angular中为开发目的创建虚拟$资源的最佳方法是什么?

时间:2016-01-22 18:07:04

标签: javascript angularjs rest

我正在开发一个依赖REST API的Angular应用程序(实际上是一个Ionic应用程序)。要与API通信,我会将$resource注入我的控制器。

我现在想专注于应用程序,后来担心后端 - 所以我想创建各种$resource的虚拟版本。例如,我的虚拟Products $资源将包含一些示例产品记录(硬编码为JSON),并将支持/模仿真实 $resource将执行的相同CRUD操作最终支持。

换句话说,它将是similar to this - 但会模仿与$resource相同的API(承诺,错误处理等)。

显然,我可以推出自己的解决方案 - 但肯定这已经解决了问题。什么是标准方法?

(我已经做了很多谷歌搜索,但我找到的所有内容都谈到了单元测试和测试框架 - 我对此几乎一无所知。无论如何,这似乎与我正在尝试的问题略有不同。我已经看到很多关于$httpBackend - 但是(1)嘲笑低级$http服务,而不是$resource,这是我需要的,(2) )它似乎意味着在单元测试的环境中使用,这不是我想要做的。)

1 个答案:

答案 0 :(得分:0)

我终于找到了an example of using $httpBackend without a unit test

基本上,您可以将$httpBackend注入模块的run()方法,如下所示:

app.run(function($httpBackend) {

  var phones = [{name: 'phone1'}, {name: 'phone2'}]; 

  $httpBackend.whenPOST('/phones').respond(function(method, url, data, headers){
    console.log('Received these data:', method, url, data, headers);
    phones.push(angular.fromJson(data));
    return [200, {}, {}];
  });

  $httpBackend.whenGET('/phones').respond(function(method,url,data) {
    console.log("Getting phones");
    return [200, phones, {}];
  });
});