diff --git a/addon/components/justa-table.js b/addon/components/justa-table.js index fc40cfb..9ad3477 100644 --- a/addon/components/justa-table.js +++ b/addon/components/justa-table.js @@ -156,7 +156,11 @@ export default Component.extend(InViewportMixin, { // windows does not respect the height set, so it needs a 2px buffer if horizontal scrollbar this.$('.table-columns').height(shouldAddHeightBuffer ? totalHeight + 2 : totalHeight); - run.next(() => this.set('containerSize', totalHeight)); + run.next(() => { + if (!this.get('isDestroyed') || !this.get('isDestroying')) { + this.set('containerSize', totalHeight); + } + }); }, _hasHorizontalScroll() { @@ -377,7 +381,9 @@ export default Component.extend(InViewportMixin, { */ _setupResizeListener() { this._resizeHandler = () => { - this.rerender(); + Ember.run.next(() => { + this.rerender(); + }, this); }; window.addEventListener('resize', this._resizeHandler, true); diff --git a/addon/components/table-columns.js b/addon/components/table-columns.js index 00c8de9..67ad46f 100644 --- a/addon/components/table-columns.js +++ b/addon/components/table-columns.js @@ -198,7 +198,9 @@ export default Ember.Component.extend({ didRender() { this._super(...arguments); run.next(() => { - this.get('table').didRenderCollection(); + if (this.get('table')) { + this.get('table').didRenderCollection(); + } }); this._setTableWidthAndPosition(); }, diff --git a/addon/components/table-rows.js b/addon/components/table-rows.js index f906c0d..8f2238a 100644 --- a/addon/components/table-rows.js +++ b/addon/components/table-rows.js @@ -47,7 +47,11 @@ export default Component.extend({ }, _updateChildren() { - let children = this.get('_children').sortBy('index'); + let children = this.get('_children'); + if (!children) { + return; + } + children = children.sortBy('index'); if (!get(children, 'length')) { return; }