尝试在NavigationEnd / ngOnDestroy上以角度发送POST请求

时间:2018-07-13 20:17:28

标签: angular typescript http

我试图在离开导航时将数据对象列表发送到数据库以进行保存。我曾尝试将其放在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()时,它将取消订阅()事件,并且数据将永远不会写入数据库。是否有人对如何解决此问题有任何想法?非常感谢!

0 个答案:

没有答案