Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/opencv/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Angular 角度材质对话框afterClosed()_Angular_Promise_Return_Angular Material - Fatal编程技术网

Angular 角度材质对话框afterClosed()

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

我想使用“角度材质”对话框创建一个“是/否”函数,该函数根据是否按下“是”键返回true或false。在“是/否”对话框中,我有以下按钮:

<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ß感谢你的回答!这是完美的:)一旦你主动尝试不订阅一个可观察的,直到你绝对必须订阅,那么你真的会开始欣赏链接的好处:-)