如何解决Angular 9,如何从NgbModal返回值将值返回到canDeactivate
谢谢您的帮助。 我试图与NgbModal一起使用canDeactivate函数。 这意味着我要返回的值取决于NgbModal的返回。
我已经看到它与comfirm alert一起工作,但是它与NgbModal无关。 这是我的代码, console.log(rtn)打印“未定义”。我知道为什么,但是不知道如何将NgbModal连接到canDeactive()。救救我吧!
public canDeactivate() {
//return confirm("Do you really want to leave?")
const rtn = this.ExistFromExamModal(this.exitFromExamMd)
console.log(rtn)
return rtn
}
public ExistFromExamModal(content: any): any {
this.modalService
.open(content,{
centered: true,scrollable: true,windowClass: 'final-confirm',})
.result.then((result) => {
if (result === 'yes') {
return true
} else {
return false
}
})
}
解决方法
您将需要返回一个可观察的
public canDeactivate() {
return from(
this.modalService
.open(this.exitFromExamMd,{
centered: true,scrollable: true,windowClass: 'final-confirm',}).result
).pipe(
map(result => result === 'yes')
);
}
from将promise变成可观察的,并且map函数将yes | no字符串转换为布尔值。
编辑:
实际上,您可以使ExistFromExamModal函数返回一个Promise。目前它什么也不会返回,但是如果您在return
之前this.modalService
,它将返回一个承诺。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。