Skip to content
This repository was archived by the owner on Feb 2, 2025. It is now read-only.

Commit 0f6db5d

Browse files
committed
Improve doc #245
1 parent 50c45ec commit 0f6db5d

File tree

2 files changed

+23
-28
lines changed

2 files changed

+23
-28
lines changed

demo/advanced/rowSelect.html

Lines changed: 18 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -36,18 +36,30 @@ <h1><i class="fa fa-play"></i>&nbsp;Selecting rows</h1>
3636
function RowSelect($compile, $scope, $resource, DTOptionsBuilder, DTColumnBuilder, DTInstances) {
3737
var vm = this;
3838
vm.selected = {};
39+
vm.selectAll = false;
3940
vm.toggleAll = toggleAll;
41+
42+
var titleHtml = '<input type="checkbox" ng-model="showCase.selectAll" ng-click="showCase.toggleAll(showCase.selectAll, showCase.selected)">';
43+
4044
vm.dtOptions = DTOptionsBuilder.fromFnPromise(function() {
4145
return $resource('data1.json').query().$promise;
4246
})
4347
.withOption('createdRow', function(row, data, dataIndex) {
4448
// Recompiling so we can bind Angular directive to the DT
4549
$compile(angular.element(row).contents())($scope);
4650
})
51+
.withOption('headerCallback', function(header) {
52+
if (!$scope.headerCompiled) {
53+
// Use this headerCompiled field to only compile header once
54+
$scope.headerCompiled = true;
55+
$compile(angular.element(header).contents())($scope);
56+
}
57+
})
4758
.withPaginationType('full_numbers');
4859
vm.dtColumns = [
49-
DTColumnBuilder.newColumn(null).withTitle('').notSortable()
60+
DTColumnBuilder.newColumn(null).withTitle(titleHtml).notSortable()
5061
.renderWith(function(data, type, full, meta) {
62+
vm.selected[full.id] = false;
5163
return '<input type="checkbox" ng-model="showCase.selected[' + data.id + ']"/>';
5264
}),
5365
DTColumnBuilder.newColumn('id').withTitle('ID'),
@@ -61,14 +73,12 @@ <h1><i class="fa fa-play"></i>&nbsp;Selecting rows</h1>
6173
});
6274
});
6375

64-
var _toggle = true;
65-
function toggleAll() {
66-
for (var prop in vm.selected) {
67-
if (vm.selected.hasOwnProperty(prop)) {
68-
vm.selected[prop] = _toggle;
69-
}
76+
function toggleAll (selectAll, selectedItems) {
77+
for (var id in selectedItems) {
78+
if (selectedItems.hasOwnProperty(id)) {
79+
selectedItems[id] = selectAll;
80+
}
7081
}
71-
_toggle = !_toggle;
7282
}
7383
}
7484
</div>

demo/advanced/rowSelect.js

Lines changed: 5 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -7,21 +7,20 @@ function RowSelect($compile, $scope, $resource, DTOptionsBuilder, DTColumnBuilde
77
vm.selected = {};
88
vm.selectAll = false;
99
vm.toggleAll = toggleAll;
10-
vm.toggleOne = toggleOne;
1110

1211
var titleHtml = '<input type="checkbox" ng-model="showCase.selectAll"' +
1312
'ng-click="showCase.toggleAll(showCase.selectAll, showCase.selected)">';
1413

1514
vm.dtOptions = DTOptionsBuilder.fromFnPromise(function() {
16-
return $resource('data1.json').query().$promise;
17-
})
15+
return $resource('data1.json').query().$promise;
16+
})
1817
.withOption('createdRow', function(row, data, dataIndex) {
1918
// Recompiling so we can bind Angular directive to the DT
2019
$compile(angular.element(row).contents())($scope);
2120
})
2221
.withOption('headerCallback', function(header) {
2322
if (!$scope.headerCompiled) {
24-
//use this headerCompiled field to only compile header once
23+
// Use this headerCompiled field to only compile header once
2524
$scope.headerCompiled = true;
2625
$compile(angular.element(header).contents())($scope);
2726
}
@@ -31,8 +30,7 @@ function RowSelect($compile, $scope, $resource, DTOptionsBuilder, DTColumnBuilde
3130
DTColumnBuilder.newColumn(null).withTitle(titleHtml).notSortable()
3231
.renderWith(function(data, type, full, meta) {
3332
vm.selected[full.id] = false;
34-
return '<input type="checkbox" ng-model="showCase.selected[' + data.id + ']"' +
35-
'ng-click="showCase.toggleOne(showCase.selected)"/>';
33+
return '<input type="checkbox" ng-model="showCase.selected[' + data.id + ']"/>';
3634
}),
3735
DTColumnBuilder.newColumn('id').withTitle('ID'),
3836
DTColumnBuilder.newColumn('firstName').withTitle('First name'),
@@ -51,18 +49,5 @@ function RowSelect($compile, $scope, $resource, DTOptionsBuilder, DTColumnBuilde
5149
selectedItems[id] = selectAll;
5250
}
5351
}
54-
};
55-
56-
function toggleOne (selectedItems) {
57-
var me = this;
58-
for (var id in selectedItems) {
59-
if (selectedItems.hasOwnProperty(id)) {
60-
if(!selectedItems[id]) {
61-
me.selectAll = false;
62-
return;
63-
}
64-
}
65-
}
66-
me.selectAll = true;
67-
};
52+
}
6853
}

0 commit comments

Comments
 (0)