繁体   English   中英

浏览器的调试器与 Angular 的 setTimeout() 有何不同?

[英]How is browser's debugger different from Angular's setTimeout()?

我正在开发一个嵌入在我无权访问的应用程序中的 angular 应用程序。 一旦弹出模式确定(复选框和按钮),我正在使用路由器从页面移动到页面。 在移动到下一页之前,我必须确保模态已被破坏,否则外页会导致问题。 我试过使用*ngif="destroyModal" 它有效,但没有及时发生。

当我将浏览器的调试器设置为停止与this.myRequestService.update...联机的操作时this.myRequestService.update...它似乎以我的模式销毁工作的方式停止了操作。 如果我在下一行(在被调用的方法中)使用调试器断点,它将不起作用。

public goToPageTwo(): void {
    this.myObject = {};

    this.myRequestService.updateNextPg(this.myObject).subscribe((nextPageResponse) => {
        this.nextPageService.setData(nextPageResponse);
        this.router.navigateByUrl(NEXT_PAGE);
    }
}

我已经尝试了几种方法setTimeout(() => this.router.navigateByUrl(NEXT_PAGE), 2000)但这似乎没有任何效果。 允许模态销毁发生的唯一停止是由调试器断点传递的停止。

我不能要求用户这样做:(

您应该在ngOnDestroy()生命周期事件中使用页面导航。

myClass {
  ...
  ngOnDestroy(){
    //do it here
  }
}

当组件关闭和清理时,这将是您想要导致页面导航的地方。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM