Ionic4-MatDialog中的matInput无法正常工作

时间:2019-10-02 19:57:10

标签: angular angular-material ionic4

晚上好!

我有一个使用Angular材质(8.1.4)的Ionic 4(5.7.0)Angular应用程序,并且遇到了一个奇怪的情况,我无法深入探究。

我有一个简单的对话框服务,可以打开通用的确认/提示对话框(MatDialog s)。问题出在提示对话框上。它并不总是能正常工作。

export class DialogService {

  constructor(public dialog: MatDialog) { }

  public confirm(text: string): Observable<boolean> {
    const dialogRef = this.dialog.open(ConfirmDialogComponent, {
      data: text
    });

    return dialogRef.afterClosed();
  }

  public prompt(data: PromptDialogDto): Observable<string> {
    const dialogRef = this.dialog.open(PromptDialogComponent, {
      data
    });

    return dialogRef.afterClosed();
  }
}

提示的代码应该是无关紧要的,因为它仅包含一个文本框(matInput)和两个按钮(确定/取消)。对话框本身按以下方式返回:

public onOkClick(): void {
  this.dialogRef.close(this.model || '');
}

public onCancelClick(): void {
  this.dialogRef.close();
}

目前,我有3个“子流程”。这些只是模态,使用Ionics ModalController在返回之前做一些动作。所有模态都使用相同的服务启动,并且所有模态都运行良好,没有错误。

子过程1:提示运行正常。 子流程2 + 3:出现提示,“确定/取消”按钮有效,文本输入无效。

根本不能将焦点放在文本输入上,它可能还不存在于屏幕上,无法提供所有的交互性。

当前使用量约为:

Main app
  --> Sub-process 3
    --> Sub-process 1
    --> Sub-process 2

尽管有些用例很简单:

Main app
  --> Sub-process 2

进程2的提示对话框仍然存在相同的问题,这消除了我的一种理论,即与堆叠过多的模态/对话框有关。

有人对此有任何想法吗?甚至在哪里看具体可能是什么原因造成的?我已经花了足够的时间试图自己固定它,但是运气不佳,所以希望这里的人能有所启发。

谢谢。

编辑:TL; DR:matInput提示对话框上的MatDialog文本输入框在3种用法中有2种是不起作用的(无法聚焦,输入文本等)。 / p>

2 个答案:

答案 0 :(得分:0)

填写答案以免出现问题:

没有答案;我放弃。我将DialogService从弹出打开材料对话框窗口切换为改为弹出离子警告。

它可以工作,所以在这一点上已经足够了...

答案 1 :(得分:0)

uncheck visibility css

取消选中可见性 css 属性后它的工作。但会影响整个 ionic 应用的可见性。