在其他 NgbModal 的结果处理程序中打开的 NgbModal 上失去了焦点

Focus lost on NgbModal opened in result handler of other NgbModal

提问人:bmurauer 提问时间:11/8/2023 更新时间:11/8/2023 访问量:18

问:

我有一个模式,要求用户输入一些,根据该输入,我可能必须打开另一个模式。我通过以下方式实现了这一点:

askUser(): void {
  this.ngbModal.open(FirstDialogComponent).result.then(
    (clickedOK) => this.ngbModal.open(SecondDialogComponent).result.then(/* do stuff */),
    (clickedCancel) => /* do other stuff */
  );
}

模式已正确打开,但第二个对话框不会自动获得焦点。相反,一旦第一个模态关闭,首先触发的按钮就会聚焦在后台。 规避这种情况的一种方法是通过将第二个调用包装在一个新的刻度中,但它似乎有点骇人听闻:askUsersetTimeout

askUser(): void {
  this.ngbModal.open(FirstDialogComponent).result.then(
    (clickedOK) => setTimeout(() => this.ngbModal.open(SecondDialogComponent).result.then(/* do stuff */)),
    (clickedCancel) => /* do other stuff */
  );
}

还有其他方法可以实现这一目标吗?

角度 聚焦 NG-Bootstrap

评论


答: 暂无答案