我正在Vue.js驱动的Electron桌面应用中使用Tabulator。我的应用程序可以查询相当大的数据存储,并将结果显示在Tabulator表中。
我想做的事情基本上和ajax模块一样,但是我不想用AJAX调用来获取新的数据,而是想调用一个特定的API。
我从排序开始。当点击标题进行排序时,我想调用自定义的api与排序参数,然后返回一个排序的数据片。在Tabulator的排序模块api中似乎没有一个 "原生 "的方法来实现这一点。
同样的处理分页--只显示~100个结果,如果他们分页到下一页,我就调用api。
有什么好的方法可以实现这个功能?
我是否应该建立我自己的模块(从ajax模块中起草),或者是做 sort
和 paginate
直接与ajax模块集成?
你可以使用 ajaxRequestFunc 回调来用你自己的逻辑替换现有的ajax请求机制。完整的细节可以在 加载数据,Ajax文档
下面的例子显示了一个新函数 查询境界 被用来替换内置的ajax功能。
该函数将被传递一个url、config和params对象,其中将包含排序、过滤和分页数据,并应返回一个用表数据数组解析的承诺。
function queryRealm(url, config, params){
//url - the url of the request
//config - the ajaxConfig object
//params - the ajaxParams object
//return promise
return new Promise(function(resolve, reject){
//do some async data retrieval then pass the array of row data back into Tabulator
resolve(data);
//if there is an error call this function and pass the error message or object into it
reject();
});
}
var table = new Tabulator("#example-table", {
ajaxRequestFunc:queryRealm,
});