Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angularjs/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Angularjs 在服务端点未就绪时,如何让$http返回模拟数据?_Angularjs - Fatal编程技术网

Angularjs 在服务端点未就绪时,如何让$http返回模拟数据?

Angularjs 在服务端点未就绪时,如何让$http返回模拟数据?,angularjs,Angularjs,在使用$http的Angular服务(provider.service)中,是否有方法定期打开和关闭使用$http的某些调用将返回的内容 下面是我的场景:我们使用$http来使用另一个开发团队构建的web服务。当这些服务尚未准备就绪(或中断)时,我们不希望开发工作停止。我们只需要暂时关闭那个特定的调用,让它返回模拟数据 我见过$httpBackend被用来模拟HTTP调用,但我不确定这是否适用于我,如果适用,我也不确定它的外观或配置方式。如果您是从数据服务进行$HTTP调用,您可以在服务中设置切

在使用$http的Angular服务(provider.service)中,是否有方法定期打开和关闭使用$http的某些调用将返回的内容

下面是我的场景:我们使用$http来使用另一个开发团队构建的web服务。当这些服务尚未准备就绪(或中断)时,我们不希望开发工作停止。我们只需要暂时关闭那个特定的调用,让它返回模拟数据


我见过$httpBackend被用来模拟HTTP调用,但我不确定这是否适用于我,如果适用,我也不确定它的外观或配置方式。

如果您是从数据服务进行$HTTP调用,您可以在服务中设置切换。如果知道http调用将失败,甚至不要进行http调用。或者,您甚至可以在开发时创建一个完整的模拟数据服务,并在后端准备就绪时用实际的服务替换它,从而避免在生产中出现开发代码的问题。这就是人们说永远不要在控制器中引用$http的原因之一


请参阅,以获得比我写的更好的解释。

我们使用$http的服务包含大量处理业务逻辑,只需使用$http来持久化和/或获取信息。所以我们不想交换整个服务的模拟版本,只交换$http。我想你的建议会起作用,不是向服务中注入$http,而是在$http周围注入一个包装器。这就是你的建议吗?是的。这将很好地解决问题。我会尽量保持简单,因为这只是一个开发时的变通方法。如果你发疯了,开始注入$http拦截器和类似的东西,那么当你再次开始与端点进行实际对话时,可能会产生一些意想不到的结果。如果这在你的公司/团队中是一个司空见惯的问题,您可能会考虑在演示文稿和持久层之间有一个专用的业务逻辑层。让我尝试一下,看看情况如何。我很可能会接受你的回答。谢谢