angular / angular/components

bug(CDK/SCROLLING): <object> element in *cdkVirtualFor is glitching when using "templateCacheSize: 0"

Offen
#28,021 0 Kommentare 1 Reaktion 0 zugewiesene Personen Auf GitHub ansehen
area: cdk/scrolling P4
Vorherrschende Sprache
TypeScript
Sterne
25k
Forks
6.8k
Ø Merge
1 T. 8 Std.
Gemergte PRs (30 T.)
91

Beschreibung

### Is this a regression?

- [ ] Yes, this behavior used to work in the previous version

### The previous version in which this bug was not present was

_No response_

### Description

When using No cache strategy (templateCacheSize: 0) for *cdkVirtualFor with element (as image), elements of list glitch while scrolling. Seems like cdkVirtualFor incorrectly init/reinit or reuse instances of listed elements.

When using tag instead of no bug detected.

### Reproduction

StackBlitz link: https://stackblitz.com/edit/uyv2wg?file=src%2Fexample%2Fcdk-virtual-scroll-template-cache-example.html
Steps to reproduce:
1. Create list of 100 elements, use with image link data.
2. Scroll

### Expected Behavior

Smooth scrolling, correct reusing/reinit of list elements, no content replacing.

### Actual Behavior

Scrolling is not smooth (end sometimes end / start of list is unreachable), elements in list are replaced by content of sibling.

### Environment

- Angular: 17.0.0-rc.0 (and 15)
- CDK/Material: 16.2.10
- Browser(s): Chrome
- Operating System (e.g. Windows, macOS, Ubuntu): macOs

Beitragsleitfaden

Beitragsleitfaden öffnen

Rechercherichtung

Beginne mit der verlinkten StackBlitz-Reproduktion und überprüfe das Verhalten in Chrome mit cdkVirtualFor, templateCacheSize: 0 und object image elements. Lies die CDK-Implementierung für virtuelles Scrolling im Bereich der Template-Wiederverwendung und vergleiche sie mit dem img-Fall. Als erledigt gilt die Aufgabe, wenn das Scrollen flüssig ist, alle Listenelemente erreichbar sind und kein Inhalt durch ein Geschwisterelement ersetzt wird.

Vom Indexierungsmodell aus dem Issue-Text verfasst.

Bewertung

Tech-Stack
angular, typescript
Bereich
frontend
Issue-Typ
Bug
Schwierigkeit
4/5
Geschätzter Aufwand
3-5 Tage
Aktivitätsstatus
Veraltet
Klarheit
Muss geklärt werden
Anfängerfreundlichkeit
25/100

Neue Issues direkt in Ihr Postfach

Eine kurze Übersicht über anfängerfreundliche GitHub-Issues.