我可以使用$ http.transformResponse来处理从Ajax接收的数据

时间:2013-11-29 10:15:07

标签: angularjs angular-services

我使用typeahead将请求不同的numericOnly和字符串搜索,因为结果具有相同的结构,如果用户查找数字我需要将obj.idnumber显示为主要信息,并且如果用户查找名称,我需要将obj.name显示为主要信息。

主变换操作是在标签道具中复制右道具,以便通过先行显示。

文档不是很清楚,所以可以使用$ http.transformResponse来处理从$ http收到的数据的某些处理吗?

感谢

梅西

2 个答案:

答案 0 :(得分:0)

这是我对特定请求使用transformResponse的方式。希望它有所帮助!

function transformResponse(data){
  // data is a raw json String, so you need to parse it before 
  try{
    data = angular.fromJson(data);
  } catch (e){
    console.error('Parsing error', e);
  }
  // transform data
  return data;
}

var req = {
  url: url,
  headers:{
    "Content-Type": "application/json",
  },
  method: "POST",
  data: data
}
// Register the transformResponse Handler
req.transformResponse = [transformResponse];
return $http(req);

答案 1 :(得分:0)

这是使用transformResponse的推荐方法。 这样,您可以使用已定义的所有默认transformResponse函数

function _transformResponse(){...}

var req= {
 url: url,
 method:"POST",
 transformResponse: $http.defaults.transformResponse.concat([_transformResponse])
}