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

Commit 0d7155c

Browse files
committed
fix: ng renderer re-rendering #1160 #262
1 parent 9197797 commit 0d7155c

9 files changed

+29
-29
lines changed

dist/angular-datatables.js

Lines changed: 11 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -899,21 +899,20 @@ if (typeof module !== "undefined" && typeof exports !== "undefined" && module.ex
899899
}
900900
var _ngRepeatAttr = _match[1];
901901

902-
var _alreadyRendered = false;
903-
904902
_parentScope.$watchCollection(_ngRepeatAttr, function() {
905-
if (_oTable && _alreadyRendered) {
903+
if (_oTable) {
906904
_destroyAndCompile();
907905
}
908906
$timeout(function() {
909-
_alreadyRendered = true;
910-
// Ensure that prerender is called when the collection is updated
911-
// See https://github.com/l-lin/angular-datatables/issues/502
912-
DTRendererService.preRender(renderer.options);
913-
var result = DTRendererService.hideLoadingAndRenderDataTable(_$elem, renderer.options);
914-
_oTable = result.DataTable;
915-
DTInstanceFactory.copyDTProperties(result, dtInstance);
916-
defer.resolve(dtInstance);
907+
if (!_oTable) {
908+
// Ensure that prerender is called when the collection is updated
909+
// See https://github.com/l-lin/angular-datatables/issues/502
910+
DTRendererService.preRender(renderer.options);
911+
var result = DTRendererService.hideLoadingAndRenderDataTable(_$elem, renderer.options);
912+
_oTable = result.DataTable;
913+
DTInstanceFactory.copyDTProperties(result, dtInstance);
914+
defer.resolve(dtInstance);
915+
}
917916
}, 0, false);
918917
}, true);
919918
return defer.promise;
@@ -945,6 +944,7 @@ if (typeof module !== "undefined" && typeof exports !== "undefined" && module.ex
945944
_newParentScope.$destroy();
946945
}
947946
_oTable.ngDestroy();
947+
_oTable = null;
948948
// Re-compile because we lost the angular binding to the existing data
949949
_$elem.html(_staticHTML);
950950
_newParentScope = _parentScope.$new();

dist/angular-datatables.min.js

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

dist/plugins/bootstrap/angular-datatables.bootstrap.min.js

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

dist/plugins/buttons/angular-datatables.buttons.min.js

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

0 commit comments

Comments
 (0)