所以我正在尝试使用datatables插件实现分页表,这是我第一次使用此插件。按照插件文档中的介绍,我遵循了插件文档,并尝试通过使用Ajax从服务器获取值。
发出get请求后,我似乎会收到以下错误,但我不确定为什么?
错误:未捕获的类型错误:无法读取未定义的的属性'length'
在客户端,我有以下代码
viewReports = {
init: function(){
$('#paginatedData').DataTable({
"processing": true,
"serverSide": true,
"ajax": '/viewreports'
});
}
};
$(document).ready(viewReports.init);
在我的服务器端,我有以下内容
router.get('/viewreports', function(res, req){
async.parallel({
viewReports: function(callback){
restCall('/rest/bugbounty/latest/message/searchReport', 'POST', parameters, function(data){
callback(null, data);
});
}
}, function(err, result){
if(!err){
res.send(result.viewReports);
res.render('viewreports');
}
});
});
返回的JSON:
非常高兴知道是否有人在node.js服务器端处理数据表
最佳答案
您需要定义 dataSrc
和 columns.data
-以下应该起作用:
var table = $('#example').DataTable({
processing: true,
serverSide: true,
ajax: {
url: "/viewreports",
dataSrc: "reportList"
},
columns: [
{ data : "reportID" },
{ data : "eBayUserID" },
{ data : "reportStatus" },
{ data : "summary" },
{ data : "lastUpdatedDate" },
{ data : "createdDate" },
{ data : "paypalLoginID" }
]
});
在空桌上:
<table id="example"></table>
dataSrc
以指定保存行项目的数组的名称(“无法读取未定义的属性'length'的原因”)columns.data
将项目属性映射到