我正在使用带表工具link的angular-datatable。
view.html
<table datatable="ng" dt-options="dtOptions" class="table table-striped table-bordered">
<thead>
<tr>
<th>Id</th>
<th>Data</th>
</tr>
</thead>
<tbody>
<tr ng-repeat="data in datas">
<td>{{ data.Id }}</td>
<td>{{ data.Name }}</td>
</tr>
</tbody>
controller.js(我在控制器中注入了DTOptionsBuilder和DTColumnBuilder)
$scope.dtOptions = DTOptionsBuilder.fromSource('data.json')
.withTableTools('app/bower_components/datatables-tabletools/swf/copy_csv_xls_pdf.swf')
.withTableToolsButtons([
'copy',
'print', {
'sExtends': 'collection',
'sButtonText': 'Save',
'aButtons': ['csv', 'xls', 'pdf']
}
]);
在app.js中,我已经包含了datatables和datatables.tabletools。
在index.html中,我已经包含了
<link rel="stylesheet" href="bower_components/datatables-tabletools/css/dataTables.tableTools.css">
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<script src="bower_components/datatables/media/js/jquery.dataTables.min.js"></script>
<script src="bower_components/angular/angular.js"></script>
<script src="bower_components/angular-datatables/dist/angular-datatables.min.js"></script>
<script src="bower_components/datatables-tabletools/js/dataTables.tableTools.js"></script>
<script src="bower_components/angular-datatables/dist/plugins/tabletools/angular-datatables.tabletools.min.js"></script>
我想使用范围变量中使用的数据而不是进行ajax调用。如果我删除fromSource(data.json),我收到一个错误,表明tableTools不是一个函数。我该怎么解决这个问题呢。
答案 0 :(得分:1)
我查看了文档,可以使用withPromise
$scope.dtOptions = DTOptionsBuilder.fromFnPromise(function() { return $q.when($scope.yourObject);})
.withTableTools('app/bower_components/datatables-tabletools/swf/copy_csv_xls_pdf.swf')
.withTableToolsButtons([
'copy',
'print', {
'sExtends': 'collection',
'sButtonText': 'Save',
'aButtons': ['csv', 'xls', 'pdf']
}
]);
试试吧。
$q.when
返回一个promise,该promise将解析为作为when
函数的参数传入的值。