Angular守卫返回false时意外关闭Dialog的原因咨询
Angular守卫返回false时意外关闭Dialog的原因咨询
各位Angular开发者们好,我最近碰到一个特别费解的问题,想过来请教下大家!
我在项目里用canDeactivate守卫来控制浏览器的回退按钮行为:当用户点击浏览器的回退箭头时,我不想触发页面路由跳转,而是只让当前打开的Dialog内部返回上一页。
现在的情况是,守卫返回false的时候,确实成功阻止了路由导航,但离谱的是,我的Dialog居然被莫名其妙关掉了!哪怕我已经把Dialog的disableClose属性设置为true,这个问题还是会出现。
下面是我守卫里的核心代码片段:
public canDeactivate(component: any): Observable<boolean> | boolean { if (this.navigationHelperService.browserBackArrowClicked && this.navigationHelperService.contentSwitcherDialogActive()) { this.navigationHelperService.browserBackArrowClicked = false; this.contentSwitcherService.dialogRef.disableClose = true; return false; } // 其他逻辑的默认返回部分这里就不贴了 }
有没有大佬遇到过类似的场景?能不能帮我分析下为什么会出现这种Dialog意外关闭的情况呀?
内容来源于stack exchange
相关产品推荐
相关产品推荐

