猿问

AngularJS $ http和$ resource

我有一些要调用的Web服务。$resource或$http,我应该使用哪一个?


$resource:https : //docs.angularjs.org/api/ngResource/service/$resource


$http:https : //docs.angularjs.org/api/ng/service/$http


阅读以上两个API页面后,我迷路了。


您能用简单的英语给我解释一下有什么区别,在什么情况下我应该使用它们?如何构造这些调用并将结果正确读入js对象?


德玛西亚99
浏览 1172回答 3
3回答

绝地无双

$http用于通用AJAX。在大多数情况下,这是您要使用的。随着$http你将要作出GET,POST,DELETE型手动调用和处理他们回到你自己的对象。$resource包装$http以用于RESTful Web API场景。概而言之:RESTful Web服务将与一个端点为基于HTTP的方法,如与数据类型进行不同的处理数据的服务类型GET,POST,PUT,DELETE,等于是用一个$resource,你可以调用一个GET获取资源作为JavaScript对象,然后对其进行更改并使用,然后将其发送回POST,甚至使用删除它DELETE。...如果有道理。

摇曳的蔷薇

我认为其他答案虽然正确,但并不能完全解释问题的根源:REST是的子集HTTP。这意味着可以通过完成的所有操作REST都可以通过完成,HTTP但是不能通过完成的所有内容都可以通过HTTP完成REST。这就是为什么在内部$resource使用$http。那么,何时互相使用?如果您需要的只是REST,也就是说,您正在尝试访问RESTfulWeb服务,$resource则将使其与该Web服务进行交互变得非常容易。相反,如果您尝试访问不是RESTfulWeb 服务的任何内容,则必须使用$http。请记住,您还可以RESTful通过来访问Web服务$http,这将比使用麻烦得多$resource。这是大多数人在AngularJS之外通过使用jQuery.ajax(等效于Angular的$http)进行此操作的方式。
随时随地看视频慕课网APP
我要回答