微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

使用CdkVirtualFor和templateCacheSize使排序工作

如何解决使用CdkVirtualFor和templateCacheSize使排序工作

我已经在Angular的列表中实现了CdkVirtualForOf,并将其templateCacheSize设置为150以提高性能

但是,当我对数据进行排序和滚动时,缓存的模板会拧紧视图中的项目。换句话说:我对数据进行排序,并且列表正确更新。然后我向下滚动,但是当我再次向上滚动时,由于模板缓存,列表中的条目不正确。

此“问题”是在GitHub here上报告的。

我尝试禁用模板缓存,这消除了问题,但是使列表执行得非常糟糕,几乎无法使用。

所以...

我该如何处理?有没有一种刷新cdkVirtualFor模板缓存的方法?还是我可以使用cdkVirtualFor进行排序工作的另一种方法

我尝试进行最小程度的复制,但是尽管模板高速缓存已激活,但它并未运行。我将其留在此处以供参考,或者如果有人可以告诉我如何进行我的复制工作。

https://stackblitz.com/edit/angular-ivy-wzfnem?file=src%2Fapp%2Fapp.component.html

解决方法

我弄清楚出了什么问题。我followed a comment来自上面提到的Github问题,并按照建议将ngOnInit逻辑移到了ngOnChanges。这样可以解决模板无法正确“更新”的问题。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其他元素将获得点击?
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。)
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbcDriver发生异常。为什么?
这是用Java进行XML解析的最佳库。
Java的PriorityQueue的内置迭代器不会以任何特定顺序遍历数据结构。为什么?
如何在Java中聆听按键时移动图像。
Java“Program to an interface”。这是什么意思?