Skip to content

Commit 195d24d

Browse files
committed
fix(virtual-scroll): emit on viewChange inside the NgZone
1 parent 73d54a4 commit 195d24d

File tree

1 file changed

+5
-2
lines changed

1 file changed

+5
-2
lines changed

src/cdk/scrolling/virtual-for-of.ts

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@ import {
1717
IterableDiffer,
1818
IterableDiffers,
1919
NgIterable,
20+
NgZone,
2021
OnDestroy,
2122
SkipSelf,
2223
TemplateRef,
@@ -166,14 +167,16 @@ export class CdkVirtualForOf<T> implements CollectionViewer, DoCheck, OnDestroy
166167
/** The set of available differs. */
167168
private _differs: IterableDiffers,
168169
/** The virtual scrolling viewport that these items are being rendered in. */
169-
@SkipSelf() private _viewport: CdkVirtualScrollViewport) {
170+
@SkipSelf() private _viewport: CdkVirtualScrollViewport,
171+
/** The Angular zone. */
172+
ngZone: NgZone) {
170173
this.dataStream.subscribe(data => {
171174
this._data = data;
172175
this._onRenderedDataChange();
173176
});
174177
this._viewport.renderedRangeStream.pipe(takeUntil(this._destroyed)).subscribe(range => {
175178
this._renderedRange = range;
176-
this.viewChange.next(this._renderedRange);
179+
ngZone.run(() => this.viewChange.next(this._renderedRange));
177180
this._onRenderedDataChange();
178181
});
179182
this._viewport.attach(this);

0 commit comments

Comments
 (0)