Skip to content

Commit 56804ba

Browse files
author
rhorenov
committed
Fix for l-lin#1160: Cannot reinitialise DataTable.
1 parent 9197797 commit 56804ba

File tree

1 file changed

+11
-8
lines changed

1 file changed

+11
-8
lines changed

src/angular-datatables.renderer.js

Lines changed: 11 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -190,14 +190,16 @@ function dtNGRenderer($log, $q, $compile, $timeout, DTRenderer, DTRendererServic
190190
_destroyAndCompile();
191191
}
192192
$timeout(function() {
193-
_alreadyRendered = true;
194-
// Ensure that prerender is called when the collection is updated
195-
// See https://github.com/l-lin/angular-datatables/issues/502
196-
DTRendererService.preRender(renderer.options);
197-
var result = DTRendererService.hideLoadingAndRenderDataTable(_$elem, renderer.options);
198-
_oTable = result.DataTable;
199-
DTInstanceFactory.copyDTProperties(result, dtInstance);
200-
defer.resolve(dtInstance);
193+
if (!_oTable) {
194+
_alreadyRendered = true;
195+
// Ensure that prerender is called when the collection is updated
196+
// See https://github.com/l-lin/angular-datatables/issues/502
197+
DTRendererService.preRender(renderer.options);
198+
var result = DTRendererService.hideLoadingAndRenderDataTable(_$elem, renderer.options);
199+
_oTable = result.DataTable;
200+
DTInstanceFactory.copyDTProperties(result, dtInstance);
201+
defer.resolve(dtInstance);
202+
}
201203
}, 0, false);
202204
}, true);
203205
return defer.promise;
@@ -229,6 +231,7 @@ function dtNGRenderer($log, $q, $compile, $timeout, DTRenderer, DTRendererServic
229231
_newParentScope.$destroy();
230232
}
231233
_oTable.ngDestroy();
234+
_oTable = null;
232235
// Re-compile because we lost the angular binding to the existing data
233236
_$elem.html(_staticHTML);
234237
_newParentScope = _parentScope.$new();

0 commit comments

Comments
 (0)