我在 Angular 12 中使用带有虚拟幻灯片的 swiper.js。最初,在加载页面时,@ViewChildren 装饰器获取对元素的引用,这些元素在 DOM 中可用。因此 QueryList 仅包含对当前、上一个和下一个滑动幻灯片的组件的引用(因为虚拟化)。但我需要参考所有可用的幻灯片。
要么,每次更改幻灯片时,我都需要以某种方式刷新@ViewChildren,或者我需要一种方法来一次获取所有组件引用。有没有办法解决这个问题?
@ViewChildren(forwardRef(() => SomeComponent)) someComponentList: QueryList<SomeComponent>;
...
public async slideDidChange() {
const someComponentsArray = this.someComponentList.toArray();
this.selectedComponent = someComponentsArray[this.swiperRef.realIndex];
}