Angular 角度材质对话框afterClosed()
我想使用“角度材质”对话框创建一个“是/否”函数,该函数根据是否按下“是”键返回true或false。在“是/否”对话框中,我有以下按钮:Angular 角度材质对话框afterClosed(),angular,promise,return,angular-material,Angular,Promise,Return,Angular Material,我想使用“角度材质”对话框创建一个“是/否”函数,该函数根据是否按下“是”键返回true或false。在“是/否”对话框中,我有以下按钮: <button [mat-dialog-close]="true">Yes</button> <button [mat-dialog-close]="false">No</button> 但是如何使此函数等待行返回结果?因为我现在想通过这样做来使用这个函数: if (this.dialogservice.Ye
<button [mat-dialog-close]="true">Yes</button>
<button [mat-dialog-close]="false">No</button>
但是如何使此函数等待行返回结果
?因为我现在想通过这样做来使用这个函数:
if (this.dialogservice.Yes_No_Prompt()) {
// something is true (pressed yes)
} else {
// something if false (pressed no)
}
Yes_No_Prompt(pMessageLines: string[]): Observable<boolean> {
const yesNoDialog = this.matdialog.open(DlgYesNoComponent, {
data: {
MessageLines: pMessageLines
}
});
return yesNoDialog.afterClosed();
}
我需要等待
返回结果
行,但我不知道如何返回。可能是一个承诺?当您订阅时,您已经在使用一个可观察的。只需从Yes\u No\u提示符中返回可观测值,如下所示:
if (this.dialogservice.Yes_No_Prompt()) {
// something is true (pressed yes)
} else {
// something if false (pressed no)
}
Yes_No_Prompt(pMessageLines: string[]): Observable<boolean> {
const yesNoDialog = this.matdialog.open(DlgYesNoComponent, {
data: {
MessageLines: pMessageLines
}
});
return yesNoDialog.afterClosed();
}
当您订阅时,您已经在使用可观察的。只需从Yes\u No\u提示符中返回可观测值,如下所示:
if (this.dialogservice.Yes_No_Prompt()) {
// something is true (pressed yes)
} else {
// something if false (pressed no)
}
Yes_No_Prompt(pMessageLines: string[]): Observable<boolean> {
const yesNoDialog = this.matdialog.open(DlgYesNoComponent, {
data: {
MessageLines: pMessageLines
}
});
return yesNoDialog.afterClosed();
}
请考虑使用<代码> CAMELCASE < /代码>来代替命名函数时的下划线。@ EDRIC您介意解释一下埃德里克的原因吗?我觉得你可以使用任何你想要的惯例。我们的团队使用camel表示变量,下划线表示函数,破折号表示css……这真的重要吗?在我看来,我非常习惯使用camelCase
表示函数,但这只是我的观点。我同意你的观点,任何编码约定都可以使用。@Edric好的,那么一切都好。老实说,我想这一点都不重要。只要团队决定使用约定。考虑使用<代码> CAMECASE < /COD>代替命名函数时的下划线。@ EDRIC您介意解释一下为什么埃德里克吗?我觉得你可以使用任何你想要的惯例。我们的团队使用camel表示变量,下划线表示函数,破折号表示css……这真的重要吗?在我看来,我非常习惯使用camelCase
表示函数,但这只是我的观点。我同意你的观点,任何编码约定都可以使用。@Edric好的,那么一切都好。老实说,我想这一点都不重要。只要团队决定使用约定,你实际上不需要在这里进行平等性检查,因为如果结果是真实值,if
语句应该执行第一个代码段。我不确定MatDialog可以返回什么,也不能返回什么,但我相信你并编辑了我的帖子。@GiacomoVoß感谢你的回答!这是完美的:)一旦你主动尝试不订阅一个可观察的,直到你绝对必须订阅,那么你真的会开始欣赏链接的好处:-)你实际上不需要在这里进行平等性检查,因为if
语句应该执行第一个代码段,如果结果是真值。我不确定是什么MatDialog可以也不能返回,但我相信你并编辑了我的帖子。@GiacomoVoß感谢你的回答!这是完美的:)一旦你主动尝试不订阅一个可观察的,直到你绝对必须订阅,那么你真的会开始欣赏链接的好处:-)