AngularJs 与服务器通信 $http, $q, $resource

$http服务是AngularJS系统自带的,可以用来进行网络通信、获取远程服务器的数据。要记住的是,$http是对浏览器XMLHttpRequest的封装,也就是说,它其实是Ajax。

$http(options).success(successFn).error(errorFn)

  • options:包括url、method(get或post)
  • successFn:成功的回调
  • errorFn:失败的回调

$http(options)返回的是一个被封装的promise对象,promise.then(function(data){},function(err){})

q服务。">一个defered对象:

方法resolve,reject,notify

arams">() {

arams">  

arams">

arams">arams">(data) { defered.resolve(data.results[

arams">arams">arams">(err) { defered.reject(err); });

arams">arams">arams">  

arams">arams">arams">

angular-resource.js中的ngResource模块中提供了一个provider $resource。

$resource服务是一个创建资源对象的工厂,用来创建同服务端交互的对象,因此我们并不是直接使用$resource服务本身同服务器通信,而是通过其创建的对象来和服务端通信。 aramDefaults],[actions],options)

一个参数化的url模板,带有前缀参数(如:/api/users/:userId)

/path/greet?salutation=hello。如果参数的任何一个值是函数,它将作为每一次请求获取的参数值而被执行。

用户对于resource行为的认设置进行扩展的自定义配置的散列,该配置将会以$http.config的格式创建。

名称,这个名称将成为resource对象方法名称

方法(不区分大小写,如GET,POST,PUT,DELETE,MOVE等)

arams: 对象,行为预先设定的参数,

一个数组。

函数/函数的数组。转换函数获取http请求体和请求头,并且返回他们的转换版(通常是序列化)

函数/函数的数组。转换函数获取http响应体和响应头,并且返回他们的转换办(通常是序列化)

一个认的$http缓存将被作为请求的缓存,否则如果存在一个用$cacheFactory创建的缓存实例将用于缓存。

属性

拦截对象有两个可选方法-response和responseError。

自定义设置,唯一支持的选项是stripTrailingSlashes,boolean类型,如果为真,url尾部的斜杠会被移除(认为true)。

var User = $resource('/api/users/:userId',{userId: '@id'});

$resource服务提供的认actions有5个:

actions: { 'get': {method: 'GET'}, 'save': {method: 'POST'}, 'query': {method: 'GET',isArray: true}, 'remove': {method: 'DELETE'}, 'delete': {method: 'DELETE'} }

User对象包含两个get方法,三个非get类型方法

User.get({id: '123'},successFn,errorFun); // 请求地址/api/users/123

User.query(params,successFun,errorFun); // 请求多条数据

User.save(params,payload,errorFun); // params用于填充url变量, payload是请求体

User.delete(params,errorFun); // delete请求

User.remove(params,errorFun); //delete请求, 移除多条数据

除了这5种认actions,我们还可以自定义扩展action,

$resource( url,{},{

sendEmail: {

method: 'POST',

url: '',

params: {},

isArray: boolean,

transformRequest: 函数函数数组,// function(data) {return angular.toJson(data); } 把对象转换成json字符串

transformResponse: 函数函数数组,// function(data) {return angular.formJson(data);} 把json字符串解析为一个对象

interceptor: {

    response: function(d){}

    responseError: function(d){}

  }

}

})

相关文章

ANGULAR.JS:NG-SELECTANDNG-OPTIONSPS:其实看英文文档比看中...
AngularJS中使用Chart.js制折线图与饼图实例  Chart.js 是...
IE浏览器兼容性后续前言 继续尝试解决IE浏览器兼容性问题,...
Angular实现下拉菜单多选写这篇文章时,引用文章地址如下:h...
在AngularJS应用中集成科大讯飞语音输入功能前言 根据项目...
Angular数据更新不及时问题探讨前言 在修复控制角标正确变...