Angular-datatables 添加一列到通过 promise 加载的 table

Angular-datatables adding a column to a table loaded via promise

已经尝试过:

a previous question 中解决的关于 promise 函数的问题类似。搜索了所有这些之后,我仍然不太明白如何处理我的以下问题:

问题:

我正在尝试将用户指定的数据加载到 angular-datatable table。用户可以 select 他们想查看哪些字段。我能找到的最好的方法是通过 promise 加载列数据。

不过,我还想添加一个操作列来删除和编辑数据行,因此我试图将此列数据推送到设置数组中。这当然是行不通的,因为它是一个 promise 对象而不是实际的数组。

我不知道如何以这种方式安排功能以这种方式添加最后一列(我是一个相当新的培训开发人员)。以下是来自控制器的代码摘录:

function angularDataTable(DTOptionsBuilder, DTColumnBuilder, $q, $resource) {
    var vm = this;
    vm.dtOptions = DTOptionsBuilder.fromSource('resources/customerData.json')
            .withPaginationType('full_numbers');
    vm.dtColumns = $resource('resources/fieldSelection.json').query().$promise;
    //So I know this is the incorrect way to work with promise objects but I don't know how to rearrange it to work.
    vm.dtColumns.push(DTColumnBuilder.newColumn(null).withTitle('Actions').notSortable().renderWith(actionsHtml));
    vm.edit = edit;
    vm.delRow = deleteRow;
    
    function actionsHtml(data, type, full, meta) {
        return '<button class="btn btn-warning" ng-click="table.edit(' + data.id + ')">' +
            '   <i class="fa fa-edit"></i>' +
            '</button>&nbsp;' +
            '<button class="btn btn-danger" ng-click="table.delRow(' + data.id + ')">' +
            '   <i class="fa fa-trash-o"></i>' +
            '</button>';
    }
    
    function edit(id) {
        console.log('edit');
    }
    function deleteRow(id) {
        console.log(id);
    }
}

Full code on github

查看 tabletools 部分 http://l-lin.github.io/angular-datatables/#/withTableTools

此外,如果您在控制器中定义列,则可以使用 notVisibile()visible() 隐藏和显示列。有关示例,请参阅 http://l-lin.github.io/angular-datatables/#/rerender