I have a controller and I want to call the destroy function of Jquery Datatables in the controller in a watch method:
$scope.$watch('model.SelectedWaiver', function() {
if ($scope.model.SelectedWaiver.SurchargeID != null) {
//destroy table here
$scope.getIndecies($scope.model.SelectedWaiver);
}
});
I am not setting up the table in any way currently because there are two tables on the page:
first:
<table datatable="ng" dt-options="dtOptions" dt-columns="dtColumns" class="table-bordered">
//stuff
</table>
second:
<table datatable="ng" id="secondTable" dt-options="dtOptions" dt-columns="dtColumns" class="table-bordered">
//stuff
</table>
I want to destroy this table when the user selects a different row in the first table.
jquery equivalent:
<script>
$(document).ready(function() {
var table = $('#secondTable').DataTable();
});
$('#selectedWaiver').on('change', function () {
table.destroy();
});
</script>
How do I do this part of the code in angular?
With
dtInstance
you have access to the dataTables API :add
dtInstance
as declaration to the tableNow you can destroy the dataTable with
angular dataTables have a extended
ngDestroy()
cleaning up bindings made by itself :There is still some
style
(and a little bit more garbage left) in the headers, so remove them too (here on a table with the id#table
) :demo -> http://plnkr.co/edit/fQ9YjsbNBNzyYuuvpk6T?p=preview
If you have multiple angular dataTables, use multiple
dtInstances
and different tableid's
.