我已经使用dtInstance创建了一个如下表:

   <table datatable="ng" dt-options="dtOptions" dt-column-defs="dtColumns" dt-instance="dtInstance" class="row-border hover">
   </table>


在控制器中,我定义了dtOptions和dtColumns:

 $scope.dtInstance = {};
    $scope.dtOptions = DTOptionsBuilder.newOptions()

    .withDOM('frtip')
    .withButtons([
{
    extend: "excelHtml5",
    className: 'btn btn-success buttons-excel',
    filename: "List",
    title: "List",
    text: "Export",
    exportOptions: {
        columns: ':visible'
    },
    //CharSet: "utf8",
    exportData: { decodeEntities: true }

}


我的问题是我想在dt表外创建一个按钮并在ng-click时触发.withButtons导出按钮

我还想隐藏表内生成的.withButtons。

得到这个错误


  TypeError:无法读取未定义的属性“按钮”


当我使用下面的代码

<button ng-click="dtInstance.DataTable.button('.buttons-excel').trigger()">Download EXCEL</button>


谢谢

最佳答案

尝试使用null而不是{}初始化dtInstance变量:

$scope.dtInstance = null;


保持其他所有内容不变。

更新:
检查是否已导入所需的所有插件。请按照下面创建的示例进行确认:

Plunker example

10-06 03:51