我有一个Angular 16应用程序,它使用了Angular的CDK虚拟滚动模块- https://material.angular.io/cdk/scrolling/overview.
被滚动的组件(比方说ProductComponent)具有使用Angular 令牌注入从其父组件访问属性的子组件,有一个特定实例(比方说ProductNameComponent)在滚动后显示错误的产品名称.
因此,我在ProductComponent中显示了名称(在右侧),并在ProductNameComponent中将名称显示为按钮(在左侧),上下滚动几次后,您开始注意到名称开始不同.
经过一段时间的研究,我已经验证了ProductComponent显示的名称是正确的,只有ProductNameComponent是错误的.
我在Stackblitz中重现了我的问题,因为无法共享真实的代码,我发现当使用输入绑定将对象向下传递到ProductNameComponent时,它可以工作,但在使用按照当前实现的注入方法时,它不起作用.
我希望我能让这件事像注射方法一样工作,但我一直无法解决这个问题……所以它是在Stackblitz转载的,如果有人能指导我,那就太好了.
https://angular-cdk-demo-virtual-scroll-nrnsxq.stackblitz.io个
我最初try 在滚动后触发更改检测,但现在似乎随着它缓存组件,注入以某种方式影响了正在显示的内容