Skip to content

Commit e898378

Browse files
committed
padding elements cache is synced with items removing
1 parent f005df4 commit e898378

File tree

3 files changed

+23
-1
lines changed

3 files changed

+23
-1
lines changed

src/modules/padding.js

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,23 @@ function Cache() {
1313
index: item.scope.$index,
1414
height: item.element.outerHeight()
1515
});
16+
cache.sort((a, b) => ((a.index < b.index) ? -1 : ((a.index > b.index) ? 1 : 0)));
1617
},
18+
19+
remove(item) {
20+
for (let i = cache.length - 1; i >= 0; i--) {
21+
if (cache[i].index === item.scope.$index) {
22+
cache.splice(i, 1);
23+
break;
24+
}
25+
}
26+
for (let i = cache.length - 1; i >= 0; i--) {
27+
if (cache[i].index > item.scope.$index) {
28+
cache[i].index--;
29+
}
30+
}
31+
},
32+
1733
clear() {
1834
cache.length = 0;
1935
}

src/modules/viewport.js

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -175,6 +175,12 @@ export default function Viewport(elementRoutines, buffer, element, viewportContr
175175
resetBottomPadding() {
176176
bottomPadding.height(0);
177177
bottomPadding.cache.clear();
178+
},
179+
180+
removeItem(item) {
181+
topPadding.cache.remove(item);
182+
bottomPadding.cache.remove(item);
183+
return buffer.remove(item);
178184
}
179185
});
180186

src/ui-scroll.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -261,7 +261,7 @@ angular.module('ui.scroll', [])
261261
}
262262
});
263263

264-
toBeRemoved.forEach((wrapper) => promises = promises.concat(buffer.remove(wrapper)));
264+
toBeRemoved.forEach((wrapper) => promises = promises.concat(viewport.removeItem(wrapper)));
265265

266266
if (toBePrepended.length)
267267
toBePrepended.forEach((wrapper) => {

0 commit comments

Comments
 (0)