@@ -13,9 +13,6 @@ <h1><i class="fa fa-play"></i> Selecting rows</h1>
13
13
< article class ="preview ">
14
14
< div ng-controller ="RowSelectCtrl as showCase ">
15
15
< p class ="text-danger "> You selected the following rows: < strong > {{ showCase.selected }}</ strong > </ p >
16
- < p >
17
- < button class ="btn btn-primary " ng-click ="showCase.toggleAll() "> Select/Remove all</ button >
18
- </ p >
19
16
< table datatable dt-options ="showCase.dtOptions " dt-columns ="showCase.dtColumns " class ="row-border hover "> </ table >
20
17
</ div >
21
18
</ article >
@@ -39,18 +36,30 @@ <h1><i class="fa fa-play"></i> Selecting rows</h1>
39
36
function RowSelect($compile, $scope, $resource, DTOptionsBuilder, DTColumnBuilder, DTInstances) {
40
37
var vm = this;
41
38
vm.selected = {};
39
+ vm.selectAll = false;
42
40
vm.toggleAll = toggleAll;
41
+
42
+ var titleHtml = '< input type ="checkbox " ng-model ="showCase.selectAll " ng-click ="showCase.toggleAll(showCase.selectAll, showCase.selected) "> ';
43
+
43
44
vm.dtOptions = DTOptionsBuilder.fromFnPromise(function() {
44
45
return $resource('data1.json').query().$promise;
45
46
})
46
47
.withOption('createdRow', function(row, data, dataIndex) {
47
48
// Recompiling so we can bind Angular directive to the DT
48
49
$compile(angular.element(row).contents())($scope);
49
50
})
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
+ })
50
58
.withPaginationType('full_numbers');
51
59
vm.dtColumns = [
52
- DTColumnBuilder.newColumn(null).withTitle('' ).notSortable()
60
+ DTColumnBuilder.newColumn(null).withTitle(titleHtml ).notSortable()
53
61
.renderWith(function(data, type, full, meta) {
62
+ vm.selected[full.id] = false;
54
63
return '< input type ="checkbox " ng-model ="showCase.selected[' + data.id + '] "/> ';
55
64
}),
56
65
DTColumnBuilder.newColumn('id').withTitle('ID'),
@@ -64,14 +73,12 @@ <h1><i class="fa fa-play"></i> Selecting rows</h1>
64
73
});
65
74
});
66
75
67
- var _toggle = true;
68
- function toggleAll() {
69
- for (var prop in vm.selected) {
70
- if (vm.selected.hasOwnProperty(prop)) {
71
- vm.selected[prop] = _toggle;
72
- }
76
+ function toggleAll (selectAll, selectedItems) {
77
+ for (var id in selectedItems) {
78
+ if (selectedItems.hasOwnProperty(id)) {
79
+ selectedItems[id] = selectAll;
80
+ }
73
81
}
74
- _toggle = !_toggle;
75
82
}
76
83
}
77
84
</ div >
0 commit comments