AngularJs 与服务器通信 $http, $q, $resource
$http服务是AngularJS系统自带的,可以用来进行网络通信、获取远程服务器的数据。要记住的是,$http是对浏览器XMLHttpRequest的封装,也就是说,它其实是Ajax。 $http(options).success(successFn).error(errorFn)
$http(options)返回的是一个被封装的promise对象,promise.then(function(data){},function(err){})
angular-resource.js中的ngResource模块中提供了一个provider $resource。 $resource服务是一个创建资源对象的工厂,用来创建同服务端交互的对象,因此我们并不是直接使用$resource服务本身同服务器通信,而是通过其创建的对象来和服务端通信。
/path/greet?salutation=hello。如果参数的任何一个值是函数,它将作为每一次请求获取的参数值而被执行。
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){} } } }) (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |