### `DTInstances`

A DataTable directive instance is created each time a DataTable is rendered.

Helper/Wrapper | API | Description
--- | --- | ---
`DTInstance` | `reloadData(callback, resetPaging)` | Reload the data of the DataTable. This API is only available for the Ajax Renderer and Promise Renderer! angular.module('myModule', ['datatables']).controller('MyCtrl', MyCtrl); function MyCtrl(DTOptionsBuilder, DTColumnBuilder) { var vm = this; vm.dtOptions = DTOptionsBuilder.fromSource('...'); vm.dtColumns = [...] vm.dtInstance = {}; vm.reloadData = reloadData; function reloadData () { vm.dtInstance.reloadData(); }); }
`DTInstance` | `changeData(data)` Depending of the using renderer, you will need to provide: a `string` or an `object` in the parameter when using the Ajax renderer. a `promise` or a `function that returns a promise` in the parameter when using the Promise renderer | Change the data of the DataTable. This API is only available for the Ajax Renderer and Promise Renderer! angular.module('myModule', ['datatables']).controller('MyCtrl', MyCtrl); function MyCtrl(DTOptionsBuilder, DTColumnBuilder) { var vm = this; vm.dtOptions = DTOptionsBuilder.fromSource('...'); vm.dtColumns = [...] vm.dtInstance = {}; vm.changeData = changeData; function changeData () { // For Ajax renderers vm.dtInstance.changeData('data.json'); // For Promise renderers vm.dtInstance.changeData(function() { return $resource('data.json').query().$promise; }); }); }
`DTInstance` | `rerender()` | This method will call the renderer to re-render the table again This is not the same as DataTable's draw(); API. It will completely remove the table, then it will re-render the table, resending the request to the server if necessarily. angular.module('myModule', ['datatables']).controller('MyCtrl', MyCtrl); function MyCtrl(DTOptionsBuilder, DTColumnBuilder) { var vm = this; vm.dtOptions = DTOptionsBuilder.fromSource('...'); vm.dtColumns = [...] vm.dtInstance = {}; vm.rerender = rerender; function rerender () { vm.dtInstance.rerender(); }); }