angular拦截器和Restanglular

拦截器

  • 用来向应用的业务流程中注入新的逻辑。

  • 拦截器的核心是服务工厂,通过向httpProvider.interceptors数组中添加服务工厂,在httpProvider中进行注册。

  • 共有四种拦截器:两种成功拦截器,两种失败器。

    • request
      AngularJS通过$http设置对象来对请求拦截器进行调用。它可以对设置对象进行修改,或者创建
      一个新的设置对象,它需要返回一个更新过的设置对象,或者一个可以返回新的设置对象的promise。
    • response
      AngularJS通过$http设置对象来对响应拦截器进行调用。它可以对响应进行修改,或者创建
      一个新的响应,它需要返回一个更新过的响应,或者一个可以返回新响应的promise。
    • requestError
      AngularJS会在上一个请求拦截器抛出错误,或者promise被reject时调用此拦截器。
    • responseError
      AngularJS会在上一个响应拦截器抛出错误,或者promise被reject时调用此拦截器。
  • 调用模块的.factory()方法来创建拦截器,可以在服务中添加一种或多种拦截器:

$resource

Restangular

  1. promise
    Restangular支持promise模式的异步调用,使用起来更符合AngularJS的习惯。可以像使用原始的$http方法一样对响应进行链式操作。
  2. promise展开
    也可以像使用$resource服务一样使用Restangular,通过很简单的方式同时操作promise和对象
  3. 清晰明了
    Restangular库几乎没有复杂或神奇的东西,无需通过猜测或研究文档就可以知道它是如何工作的。
  4. 全HTTP方法支持
    Restangular支持所有的HTTP方法。
  5. 忘记URL
    $resource要求明确的指定想要拉取数据的URL, Restangular并不需要事先知道URL或提前指定它们(除基础URL外)。
  6. 资源嵌套
    Restangular可以直接处理嵌套的资源,无需创建新的Restangular实例。
  7. 一个实例
    同$resource不同,使用过程中仅需要创建一个Restangular资源对象的实例。

你可能感兴趣的:(angular拦截器和Restanglular)