angular / angular/components

Material Tabs + No Template Caching => Broken Virtual Scroll

オープン
#27,230 コメント 0 件 リアクション 0 件 担当者 0 名 GitHub で見る
area: cdk/scrolling area: material/tabs P3
主要言語
TypeScript
スター
25k
フォーク
6.8k
平均マージ
1日 8時間
マージ済み PR(30日)
91

説明

### Description

If you attempt a ***cdkVirtualFor** with a **templateCacheSize: 0**, the Virtual Scroll will break when you include a **Material Tab** in the repeated element.

### Reproduction

[StackBlitz ](https://stackblitz.com/edit/el4pji?file=src%2Fexample%2Fcdk-virtual-scroll-template-cache-example.ts,src%2Fexample%2Fcdk-virtual-scroll-template-cache-example.html,src%2Fexample%2Fcdk-virtual-scroll-template-cache-example.css)

Steps to reproduce:
1. Try scrolling.

### Expected Behavior

No broke.

### Actual Behavior

Broke.

### Workaround
Disable **Material Tab** pagination as so:

### Environment

Angular CLI: 16.0.0
Node: 18.15.0
Package Manager: npm 9.5.0
OS: win32 x64

Angular: 16.0.0
... animations, cdk, cdk-experimental, cli, common, compiler
... compiler-cli, core, forms, material, platform-browser
... platform-browser-dynamic, router

Package Version
---------------------------------------------------------
@angular-devkit/architect 0.1600.0
@angular-devkit/build-angular 16.0.0
@angular-devkit/core 16.0.0
@angular-devkit/schematics 16.0.0
@angular/fire 7.6.1
@schematics/angular 16.0.0
rxjs 7.8.1
typescript 4.9.5

コントリビューションガイド

コントリビューションガイドを開く

調査の方向性

リンクされている StackBlitz の再現例から始め、特に src/example/cdk-virtual-scroll-template-cache-example.ts とその HTML および CSS ファイルを確認し、templateCacheSize を 0 に設定してスクロールを再現します。Material Tab のページネーションを無効にした場合の動作と比較します。Material Tabs と template caching なしで virtual scroll が引き続き機能し、workaround に頼らずに済めば完了です。

索引モデルが issue の本文から書いたものです。

評価

技術スタック
angular, typescript
領域
frontend
issue の種類
バグ
難易度
4/5
見積もり時間
3〜5日
活発さ
停滞
明瞭さ
おおむね明確
初心者へのやさしさ
35/100

新しい issue をメールで受け取る

初心者向けの GitHub issue を短くまとめたダイジェスト。