我有一个组件,可以根据所选元素动态更改其内容。该组件从包含一系列案例的模拟中获取其内容。
此外,我还有一个链接,可以单击它来显示下一个条目。
要检测此更改,我将其添加到了init上:
case: Case;
cases = CASES;
...
ngOnInit() {
this.route.paramMap.pipe(
map(paramMap => +paramMap.get('id')),
switchMap((id: number) => this.caseService.getCase(id)),
).subscribe(cases => this.case = cases);
this.loadData();
}
如您所见,位于ngOnInit
中的还有一个名为loadData()
的函数:
loadData(): void {
this.color = this.case.header;
this.images.push(this.case.image, this.case.image2, this.case.image3);
this.carouselImage = this.images[this.counter];
this.nextImage = this.images[this.nextCounter];
this.prevImage = this.images[this.prevCounter];
if (this.case.id === this.cases.length) {
this.nextIndex = 0;
} else {
this.nextIndex = this.case.id + 1;
}
}
现在,如果用户单击提到的链接,则所选案例将被更改并显示,但是loadData()
将不会执行,因为不会重新加载页面。
我还尝试在loadData()
中调用(click)
,但似乎loadData()
仍适用于旧情况。
当订阅管道检测到更改时,是否可以调用执行loadData()
?