DTColumnDefBuilder

This service will help you build your datatables column defs. All it's doing is appending to the DataTables options the object aoColumnDefs

Writing the following code:

angular.module('myModule', ['datatables']) .controller('myCtrl', function($scope, DTOptionsBuilder, DTColumnDefBuilder) { $scope.dtOptions = DTOptionsBuilder.newOptions(); $scope.DTColumnDefs = [ DTColumnDefBuilder.newColumnDef(0).notSortable() ]; });

is the same as writing the following:

$scope.options = { aoColumnDefs: [ { aTargets: 0, bSortable: false } ] };

Note: Of course, this helper is not mandatory. This helper only constructs a JSON object. You can directly pass the datatable column options on the element attributes and dt-column-defs.

 The column defs must be provided in the dt-column-defs directive whereas the column options must be provided in the dt-columns" directive.


Helper/Wrapper API Description
DTColumnDefBuilder newColumnDef(aTargets)

Create a new wrapped DTColumnDef. It posseses the same function as DTColumn.

angular.module('myModule', ['datatables']) .controller('myCtrl', function($scope, DTColumnDefBuilder) { $scope.dtColumnDefs = [ DTColumnDefBuilder.newColumnDef(0) ]; });
DTColumnDef withOption(key, value) Add the option of the column. For example, the following code add the option sContentPadding:
angular.module('myModule', ['datatables']) .controller('myCtrl', function($scope, DTColumnDefBuilder) { $scope.dtColumnDefs = [ DTColumnDefBuilder.newColumnDef(0).withOption('sContentPadding', 'mmm') ]; });
DTColumnDef withTitle(title)

Set the title of the colum.

angular.module('myModule', ['datatables']) .controller('myCtrl', function($scope, DTColumnDefBuilder) { $scope.dtColumnDefs = [ DTColumnDefBuilder.newColumnDef(0).withTitle('FooTitle') ]; });
DTColumnDef withClass(sClass)

Set the CSS class of the column

angular.module('myModule', ['datatables']) .controller('myCtrl', function($scope, DTColumnDefBuilder) { $scope.dtColumnDefs = [ DTColumnDefBuilder.newColumnDef(0).withClass('foo-class') ]; });
DTColumnDef notVisible()

Hide the column.

angular.module('myModule', ['datatables']) .controller('myCtrl', function($scope, DTColumnDefBuilder) { $scope.dtColumnDefs = [ DTColumnDefBuilder.newColumnDef(0).notVisible() ]; });
DTColumnDef notSortable()

Set the column as not sortable

angular.module('myModule', ['datatables']) .controller('myCtrl', function($scope, DTColumnDefBuilder) { $scope.dtColumnDefs = [ DTColumnDefBuilder.newColumnDef(0).notSortable() ]; });
DTColumnDef renderWith(mrender) Render each cell with the given parameter
angular.module('myModule', ['datatables']) .controller('myCtrl', function($scope, DTColumnDefBuilder) { // Data fetched: {gender: 'Mr', firstName: 'foo', lastName: 'bar'} $scope.DTColumnDefs = [ DTColumnDefBuilder.newColumnDef(0).renderWith(function(data, type, full) { return full.gender + ' ' + full.firstName; }); ]; });