我试图在离开导航时将数据对象列表发送到数据库以进行保存。我曾尝试将其放在ngOnDestroy()中,但看起来好像是请求被销毁到对列表的引用被销毁之前的一半,而一半是发送空值。这就是我一直在尝试的。
this._routerSub = this.router.events.subscribe(event => {
if (event instanceof NavigationEnd) {
console.log("We have just triggered NavigationEnd! We are now calling .SaveNewJiras()");
this.sprintListService.SaveNewJiras(this.NewIssues, this.sprintNum).subscribe((result) => {
this.NewIssues = [];
}, error => console.log('CALL TO SAVENEWJIRAS() DID NOT WORK!'));
}
});
,并在ngOnDestroy()方法中使用。
this._routerSub.unsubscribe();
我遇到的是,如果不调用.unsubscribe(),它将成功写入数据库。但是,在其他页面与该页面之间来回导航会“堆叠” NavigationEnd事件(由于使用主键写入记录,因此成为问题)。当我确实调用.unsubscribe()时,它将取消订阅()事件,并且数据将永远不会写入数据库。是否有人对如何解决此问题有任何想法?非常感谢!