gpt4 book ai didi

javascript - 使用 Angular 数据表动态更改列

转载 作者:行者123 更新时间:2023-11-28 19:01:18 26 4
gpt4 key购买 nike

我正在使用angular datatables ,流行的 jquery 数据表库的 Angular 版本。

这是我的 html

<body ng-controller="TestCtrl">

<input type="button" ng-click="changeColumns()" value="Change Columns"/>
<table datatable="" dt-options="dtOptions" dt-columns="dtColumns" class="row-border hover"></table>

</body>

这是我的 JavaScript

var module = angular.module('TestApp', ['datatables']);

module.controller('TestCtrl', [
'$scope',
'DTOptionsBuilder',
'DTColumnBuilder',
function($scope, DTOptionsBuilder, DTColumnBuilder) {

$scope.dtOptions = DTOptionsBuilder.newOptions();

$scope.dtColumns = [
DTColumnBuilder.newColumn('ColumnA').withTitle('ColumnA'),
DTColumnBuilder.newColumn('ColumnB').withTitle('ColumnB')
];

$scope.changeColumns = function() {
$scope.dtColumns = [
DTColumnBuilder.newColumn('ColumnA').withTitle('ColumnA'),
DTColumnBuilder.newColumn('ColumnB').withTitle('ColumnB'),
DTColumnBuilder.newColumn('ColumnC').withTitle('ColumnC'),
DTColumnBuilder.newColumn('ColumnD').withTitle('ColumnD')
];

};
}
]);

这已经是我可以将问题减少到的最简单的了,但我仍然遇到同样的错误。当页面首次加载时,我按预期看到“ColumnA”和“ColumnB”。然后我单击表格上方的“更改列”按钮。

表格行消失,原来的两列保留,我在浏览器控制台中收到此错误。

Error: headerCells[i] is undefined

后面是令人讨厌的堆栈跟踪。我尝试复制 tutorial我之前链接过,有一些细微的差别。我不明白为什么这个简单的例子不适合我。有人可以帮忙吗?

最佳答案

在我的项目中遇到了同样的问题。

vm.table.dtInstance.DataTable.destroy();
angular.element('#table-id').children('thead').children().remove();
angular.element('#table-id').children('tbody').children().remove();
vm.table.dtColumns = columnsList;

对我有帮助。当您设置新列列表时,它会删除整个数据表并从头开始创建它。

关于javascript - 使用 Angular 数据表动态更改列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32487401/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com