Skip to content

Commit 0e0b702

Browse files
committed
fix(virtual-repeat): Changing the items to emty array from scrollable list
1 parent 4fbea6b commit 0e0b702

File tree

2 files changed

+12
-9
lines changed

2 files changed

+12
-9
lines changed

src/virtual-repeat.js

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -113,6 +113,9 @@ export class VirtualRepeat extends AbstractRepeater {
113113

114114
bind(bindingContext, overrideContext): void {
115115
this.scope = { bindingContext, overrideContext };
116+
if (this._isAttached) {
117+
this.itemsChanged();
118+
}
116119
}
117120

118121
call(context, changes): void {
@@ -454,7 +457,7 @@ export class VirtualRepeat extends AbstractRepeater {
454457
}
455458

456459
_calcInitialHeights(itemsLength: number): void {
457-
if (this._viewsLength > 0 && this._itemsLength === itemsLength || itemsLength <= 0) {
460+
if (this._viewsLength > 0 && this._itemsLength === itemsLength || this._viewsLength > 0 && itemsLength < 0) {
458461
return;
459462
}
460463
this._hasCalculatedSizes = true;

test/virtual-repeat-integration.spec.js

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -177,15 +177,15 @@ describe('VirtualRepeat Integration', () => {
177177
}
178178

179179
function validateArrayChange(virtualRepeat, viewModel, done) {
180-
viewModel.items = ['Foo B: 1', 'Foo B: 2', 'Foo B: 3', 'Foo B: 4', 'Foo B: 5'];
180+
const createItems = (name, amount) => new Array(amount).map((v, index) => name + index);
181+
182+
viewModel.items = createItems('A', 4);
181183
nq(() => validateState(virtualRepeat, viewModel));
182-
nq(() => {
183-
let newArr = [];
184-
for (let i = 0; i < 100; i++) {
185-
newArr.push('Foo C: ' + i);
186-
}
187-
viewModel.items = newArr;
188-
});
184+
nq(() => viewModel.items = createItems('B', 0));
185+
nq(() => validateState(virtualRepeat, viewModel));
186+
nq(() => viewModel.items = createItems('C', 101));
187+
nq(() => validateState(virtualRepeat, viewModel));
188+
nq(() => viewModel.items = createItems('D', 0));
189189
nq(() => validateState(virtualRepeat, viewModel));
190190
nq(() => done());
191191
}

0 commit comments

Comments
 (0)