fix(virtual-scroll): create views inside zone

fixes #10451
This commit is contained in:
Manuel Mtz-Almeida
2017-04-19 15:55:12 +02:00
parent 27cb360eac
commit fd3c6baec7
2 changed files with 15 additions and 12 deletions

View File

@ -501,15 +501,17 @@ export class VirtualScroll implements DoCheck, AfterContentInit, OnDestroy {
adjustRendered(cells, data); adjustRendered(cells, data);
populateNodeData( this._zone.run(() => {
data.topCell, data.bottomCell, populateNodeData(
data.viewWidth, true, data.topCell, data.bottomCell,
cells, records, nodes, data.viewWidth, true,
this._itmTmp.viewContainer, cells, records, nodes,
this._itmTmp.templateRef, this._itmTmp.viewContainer,
this._hdrTmp && this._hdrTmp.templateRef, this._itmTmp.templateRef,
this._ftrTmp && this._ftrTmp.templateRef, needClean this._hdrTmp && this._hdrTmp.templateRef,
); this._ftrTmp && this._ftrTmp.templateRef, needClean,
);
});
if (needClean) { if (needClean) {
this._cd.detectChanges(); this._cd.detectChanges();

View File

@ -233,9 +233,10 @@ export function populateNodeData(startCellIndex: number, endCellIndex: number, v
availableNode.cell = cellIndex; availableNode.cell = cellIndex;
// apply the cell's data to this node // apply the cell's data to this node
availableNode.view.context.$implicit = cell.data || records[cell.record]; var context = availableNode.view.context;
availableNode.view.context.index = cellIndex; context.$implicit = cell.data || records[cell.record];
availableNode.view.context.count = recordsLength; context.index = cellIndex;
context.count = recordsLength;
availableNode.hasChanges = true; availableNode.hasChanges = true;
availableNode.lastTransform = null; availableNode.lastTransform = null;
hasChanges = true; hasChanges = true;