2016-12-24 89 views
2

我有一个自定义JavaScript客户端,使用ajax与远程API一起工作。jquery datatables自定义ajax客户端

假设它被MyApiClient象下面这样:

var MyApiClient = function() { 
    this.Invoke = function (config, callback) { 
    // ... 
    } 
} 

如何配置jQuery的数据表,这样我可以使用MyApiClient而不是内置的Ajax的jQuery的数据表内提供?

也就是说,假设加载远程数据,你需要打电话给你的客户是这样的:

var client = new MyApiClient(); 

client.Invoke({ url: '/api/app/v1/some-entity/all', function(result, err) { 
    // ... 
    } 
}); 

谢谢您已经

回答

3

使用ajax选项来定义一个函数,通过检索数据的自己的Ajax调用。

作为一个函数,让Ajax调用留给自己,允许完全控制Ajax请求。事实上,如果需要,可以使用Ajax以外的方法来获取所需的数据,例如Web存储或Firebase数据库。

当从数据源获取数据时,应使用传入的单个参数调用第二个参数(此处为callback) - 用于绘制表格的数据。

例如:

$('#example').DataTable({ 
    "ajax": function (data, callback, settings) { 
    var client = new MyApiClient(); 
    client.Invoke({ url: '/api/app/v1/some-entity/all', function(result, err){ 

      // Pass the data to jQuery DataTables 
      callback(result); 

     } 
    }); 
    } 
}); 
+0

谢谢。 这不仅限于数据检索。我们需要定制其他操作,例如**插入,删除,更新**和**分页**。 是否有可能在这些操作中以类似的方式使用MyApiClient来代替jQuery Datatables的内部工作? – FazelMan