如何修改jQuery AJAX调用的响应数据并将其作为更新的jqXHR结果返回?

时间:2017-03-24 09:47:36

标签: javascript jquery

我正在使用jsGrid loadData控制器期望ajax调用中的数据如下:

controller: {
  loadData: function() {
    return $.getJSON(url).done(function(data) {
      console.log(data)
    });
  }, 
  //...definition for others insertItem, updateItem, deleteItem
}

以上工作正常。

我现在需要按摩data才能将它们传递给jsGrid。我想我必须在done函数中完成它。如何返回修改后的data

2 个答案:

答案 0 :(得分:0)

您无法从异步函数返回任何内容。

为了做你需要的事,你要扭转你的逻辑;使AJAX请求首先获取数据,然后使用它来初始化回调处理程序中的jsGrid。像这样:

$.getJSON(url).done(function(data) {
  var modifiedData = /* modify your data object/array here... */

  $('#element').jsGrid({
    data: modifiedData
  });
});

答案 1 :(得分:0)

使用带有jqXHR参数的成功回调的重载:

controller: {
  loadData: function() {
    return $.getJSON(url).done(function(data,status,jqXHR) {
      console.log(data)
      //modify data and update it into jqXHR.responseJSON
      console.log(jqXHR.responseJSON)
    });
  }, 
  //...definition for others insertItem, updateItem, deleteItem
}