在数据表中传递点击按钮的行数据

时间:2018-07-16 05:43:24

标签: javascript jquery datatables

关于这个问题,我进行了很多搜索,并且有很多解决方案。 但就我而言,我使用了不同的体系结构,因此无法将这些解决方案应用于我的解决方案。

首先,我使用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)表示“未定义”,所以我始终只能获得第一行的路径数据。

0 个答案:

没有答案