我目前无法获取angular-dataTables来从服务器请求数据。
当我使用.fromFnPromise()
时,它运行正常。我的代码被调用,然后我调用我的服务来获取数据。
vm.dtOptions = dataOptionBuilder.fromFnPromise(
service.getViewItems()
.then(function(data) {
vm.logs = data;
});
)
.withPaginationType('full_numbers')
.withDisplayLength(25);
但是,我现在需要进行服务器端分页,因此我使用.withOptions()
并传入ajax选项:
vm.dtOptions = dataOptionBuilder.newOptions()
.withOption('ajax', {
url: '/api/services/app/patients/GetViewItems',
type: 'POST'
})
.withDataProp('data')
.withOption('serverSide', true)
.withOption('processing', true)
.withOption('order', [[0, 'asc'], [1, 'asc']])
.withPaginationType('full_numbers');
查看
<table id="dt_basic" datatable dt-options="dtOptions" dt-columns="dtColumns" class="table table-striped table-bordered table-hover">
<thead>
<tr>
<th data-class="expand"><i class="fa fa-fw fa-lock"></i>Comment</th>
</tr>
</thead>
<tbody>
<tr ng-repeat="item in vm.logs">
<td>{{ item.comment }}</td>
</tr>
</tbody>
</table>
知道为什么它没有触发AJAX请求吗?
答案 0 :(得分:1)
根据datatables
参考指南,.withOption('serverSide', true)
表示您有责任实施paging on your server。
您可以use a function使用分页所需的信息(以及过滤和排序)调用您的角度服务,而不是指定ajax服务的路径。
.withOption('ajax', function(data, callback, settings) {
//pass the data parameter to your service to access necessary paging info
service.getViewItems(data)
.then(function(result) {
callback(result);
});
})
以下是将您的服务挂钩到选项构建器的演示:http://plnkr.co/edit/1V9qdpO47XBFtGVV6j2I?p=preview