关于这个问题,我进行了很多搜索,并且有很多解决方案。 但就我而言,我使用了不同的体系结构,因此无法将这些解决方案应用于我的解决方案。
首先,我使用DTColumnBuilder来配置按钮。
DTColumnBuilder.newColumn('download').withTitle().notSortable().withOption('width', '24%').renderWith(function(data, type, full, meta) {
return '<button class="btn btn-primary btn-xs" type="button" ng-click = "downloader($index)"><i class="far fa-arrow-alt-circle-down"></i> 다운로드 </button>';
})
第二,如果单击该按钮,我想获取一个文件路径,该路径是表中另一列的数据。因此,我设计了如下的downloader()函数。
$scope.downloader = function(index) {
var table = $('#listFileTable').DataTable();
var DTRow = table.row(index).data();
var path = DTRow.filePath;
console.log(index);
console.log(path);
return $http.get(fileData.downloadUrl, {params: {"path": path}}).then(function (resp) {
return resp.data;
});
}
,并且该fileData.downloadUrl与java控制器映射,该java控制器接收路径作为参数并以文件流类型打开文件。 但是,当我使用console.log(path)进行测试时,由于console.log(index)表示“未定义”,所以我始终只能获得第一行的路径数据。