【发布时间】:2014-10-02 09:48:48
【问题描述】:
我开始研究AngularJS 和DataTables,想知道是否可以自定义DataTables 所期望的响应。目前对 DataTables 插件的期望是这样的:
{
"draw": 1,
"recordsTotal": 57,
"recordsFiltered": 5,
"data": [...]
}
在服务器端,API 由django-tastypie 处理
服务器的响应是:
{
meta: {
limit: 20,
next: null,
offset: 0,
previous: null,
total_count: 2
},
objects: [...]
}
那么,有没有办法调整 Datatables 插件以接受/映射此响应,或者我必须找到一种方法将预期字段添加到 api?
到目前为止,我已经这样做了:
var deptTable = angular.element('#deptManagementTable').DataTable({
processing: true,
serverSide: true,
pagingType: "simple_numbers",
ajax: {
url: "/client/api/v1/departments/",
data: function(d) {
d.limit = d.length;
d.offset = d.start;
d.dept_name__icontains = d.search.value;
},
dataSrc: function(json) {
for (var i=0, len=json.objects.length ; i<len ; i++) {
json.objects[i].DT_RowId = json.objects[i].dept_id;
}
return json.objects;
}
},
aLengthMenu: [
[5, 25, 50, 100],
[5, 25, 50, 100]
],
iDisplayLength: 5,
columns: [
{
data: "dept_name"
},
{
data: "dept_created_on",
render: function ( data, type, full, meta ) {
var dateCreated = new Date(data);
dateCreated = dateCreated.toLocaleDateString();
return dateCreated;
}
}
]
});
任何帮助将不胜感激。
在此先感谢:)
【问题讨论】:
标签: ajax django angularjs datatable tastypie