繁体   English   中英

如果可能,我应该使用angularjs $ http服务请求或jquery ajax吗?

[英]Should I use angularjs $http service for requests or jquery ajax if possible?

在我的项目中,我使用angularjs框架,并且每当我进行ajax调用时都喜欢使用$http服务。 但是在项目的某些部分,如果没有通过ajax调用直接更新UI,并且不需要angularjs绑定,我应该使用$http服务还是普通的jquery.ajax

更具体地说,我应该最小化我不关心UI的项目中的angularjs依赖关系,还是用angular服务和指令紧紧包裹整个项目?

如果您使用的是Angularjs,那么您应该使用$ http作为进行ajax调用的首选方法。 该服务不必绑定到ui或影响ui。

只有当您无法使用角度服务执行操作时,才应使用Jquery Ajax调用,如果您遵循angularjs最佳实践,这将很少见。

此外,如果您使用http服务,您可以让拦截器在调用成功部分之前创建请求并处理响应。 这些用于处理全局错误和显示全局通知,可以说,可以进行任何响应。 此外,您可以在每个请求之前添加标题和更多信息。 此外,您可以在此处对请求/响应进行编码/解码,以便所有这些实用程序功能都在同一位置完成。 请检查以下链接: 带有拦截器的http服务文档

如果你仍然需要从外部角度环境中调用$ http,你应该试着避免,使用angular的常用实用函数并将其包装在一些你可以直接调用的函数中。

我个人建议将其与封装http请求的公共服务层保持一致。 虽然你可以把它混淆我只建议你这样做,如果你正在处理已经用jquery编写的代码。 此外,如果您最终想要更改它以更新UI,则必须返回并更改jquery调用。

Blaise已经做出的另一个观点是,如果您正在进行单元测试并希望模拟响应,那么$ http会非常闪耀。 这是一个例子: http//www.unit-testing.net/CurrentArticle/How-to-mock-http-calls-in-Angular.html

如果Ajax请求不与UI交互,那么它并不重要。 $ http就像Ajax请求,最大的区别是$ http注册到摘要周期,用新数据更新UI。 如果UI更新中没有必要,您可以使用任何让您满意的内容。

你应该使用Angular基础设施,强烈建议使用它。 有关jQuery开发人员的很好的介绍,请访问Angular http://www.ng-newsletter.com/posts/angular-for-the-jquery-developer.html

讨论$ http与$ .ajax Angularjs $ http VS jquery $ .ajax 从jquery $ .ajax到angular $ http的区别

更多关于在Angular中使用jQuery会导致一些问题,例如https://github.com/angular/angular.js/issues/2548(jQuery导致ngClick与触摸设备的错误工作)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM