我已经完全遵循了这个例子,仍然无法使用服务器端处理渲染我正在绘制的数据表上的任何按钮。这是代码:
vm.dtOptions = DTOptionsBuilder.newOptions()
.withOption('ajax', {
type: 'POST',
url: /my/api/here,
headers: {
'Authorization': 'Basic blah12345'
},
dataSrc: function(resp){
var data = resp.data;
data.forEach(function(el){
//moment.js
if(el.process_date){
el.process_date = moment(el.process_date).format("MMM D YYYY, h:mm a");
}else{
el.process_date = "N/A"
}
if(el.event_date){
el.event_date = moment(el.event_date).format("MMM D YYYY, h:mm a");
}else{
el.event_date = "N/A"
}
//------------------------------------------------------------------------
if(el.description === null || !el.description){
el.description = "N/A";
}
});
return data;
}
})
.withDOM('Bfrtip') // I have tried dif options here from other examples
.withDataProp('data')
.withOption('serverSide', true)
.withOption('processing', true)
.withOption('order', [[0, 'desc']])
.withPaginationType('full_numbers')
.withButtons([
'columnsToggle',
'colvis',
'copy',
'print',
'excel',
{
text: 'Some button',
key: '1',
action: function (e, dt, node, config) {
alert('Button activated');
}
}
]);
vm.dtColumns = [
DTColumnBuilder.newColumn('event_date').withTitle('Event Date'),
DTColumnBuilder.newColumn('process_date').withTitle('Process Date'),
DTColumnBuilder.newColumn('reason').withTitle('Reason'),
DTColumnBuilder.newColumn('description').withTitle('Description'),
DTColumnBuilder.newColumn('amount').withTitle('Amount')
.renderWith(function(data, type, full) {
return $filter('currency')(data, '$', 2)
}),
DTColumnBuilder.newColumn('balance').withTitle('Balance')
.renderWith(function(data, type, full) {
return $filter('currency')(data, '$', 2)
}),
DTColumnBuilder.newColumn('id').withTitle('Sequence'),
];
在这里,我使用my table移动$ state之前解析依赖关系:
.state('app', {
url: '/app',
abstract: true,
templateUrl: helper.basepath('app.html'),
resolve: helper.resolveFor( 'moment','datatables', 'datatables.buttons')
})
这是我用来呈现表格的HTML:
<div class="panel panel-default">
<div class="panel-body">
<div>
<table datatable="" dt-options="fundsCtrl.dtOptions" dt-columns="fundsCtrl.dtColumns" dt-instance="fundsCtrl.dtInstance" class="row-border hover row-border hover"></table>
</div>
</div>
</div>
我在angular-datatables文档示例中注意到,还包含了一个css文件:
<link rel="stylesheet" href="vendor/datatables-buttons/css/buttons.dataTables.css">
我从数据表文档挖出来并将其包含在我的index.html中,但对我的原因没有多大帮助。
我非常感谢任何帮助! :)
非常感谢并期待收到回复
答案 0 :(得分:1)
我认为您缺少一些Angular DataTables文档未指定的文件
您缺少的文件在此包中
datatables.net-按钮-BS
您需要使用
安装它们<强>亭子强>
bower install --save datatables.net-buttons-bs
或 的 NPM 强>
npm install datatables.net-buttons-bs
安装此软件包时,您应该将5个文件添加到项目中
dataTables.buttons.min.js
buttons.colVis.min.js
buttons.flash.min.js
buttons.html5.min.js
buttons.print.min.js
有了这个,您应该能够看到/使用withButtons