角度数据表按钮不会呈现

时间:2016-04-26 18:07:33

标签: angularjs angular-datatables

我已经完全遵循了这个例子,仍然无法使用服务器端处理渲染我正在绘制的数据表上的任何按钮。这是代码:

 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中,但对我的原因没有多大帮助。

我非常感谢任何帮助! :)

非常感谢并期待收到回复

1 个答案:

答案 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