angular模态框内点击跳转新页面后无法操作问题解决方案
现场:在某次写需求的时候,要求通过对话框(模态框)获取流程单据,然后点击单据编号跳转至对于流程(新页面),随后对话框在新页面无法关闭,新页面也无法点击。
1.
2.
代码如下:
paymentFileWorkflow(data: any) {
this.isRelevantWorkflow =false;
let workflow = {
requestId: data.requestId,
formUrl: 'WorkflowDynamicFormValueComponent',
};
this.workflowProcessService.open(workflow);
}
当点击事件触法后,首先就执行了对话框关闭的语句,但是却发生了异步,页面已经跳转,对话框却还没关闭,新页面以及找不到对话框对应的一些方法。从而使新页面无法操作。
解决方案:网上说对话框遮隐层在新页面还存在,需要在新页面的加载方法中手动去除遮隐。但是我跳转的新页面被封装了,无法修改里面的代码。所以使用了如下方法:
paymentFileWorkflow(data: any) {
this.isRelevantWorkflow =false;
let workflow = {
requestId: data.requestId,
formUrl: 'WorkflowDynamicFormValueComponent',
};
setTimeout(() => {
this.workflowProcessService.open(workflow);
}, 300);
}
直接把跳转的路由设置超时就解决了。