离子性-按下退出键时关闭警报控制器和/或输入字段

时间:2019-02-21 16:48:43

标签: angular ionic-framework ionic3

在台式机上使用ionic 3。我有项目清单。可以编辑每个项目,然后保存或取消更改。如果我点击了edit,并且输入框打开了,我希望能够通过点击escape来关闭编辑/输入框。我也有一个警报控制器,可将一个项目添加到列表中。我希望警报控制器在逃脱时消失。这些功能现在都无法使用,我不确定如何添加它们。我已经搜索了离子文档,但我想我不理解它们。

代码如下:

settings.ts

counter

谢谢!

2 个答案:

答案 0 :(得分:1)

如果可行,可以将enableBackdropDismiss设置为true,这将解决您的问题。但是我想您设置它是有原因的;)

否则,要对JGFMK的答案进行一些更改,这是您可以采用的方法, 将警报分配给变量,以便您可以在@HostListener中引用它,并在用户按下esc键时关闭警报:

import { AlertController, Alert } from 'ionic-angular';

// ...

prompt: Alert;

@HostListener('document:keydown.escape', ['$event'])
onKeydownHandler(event: KeyboardEvent) {
  this.prompt.dismiss();
}

addTapped() {
  this.prompt = this.alertCtrl.create({ ... })
  this.prompt.present();
}

StackBlitz

答案 1 :(得分:0)

让我知道这是否有帮助。

import { HostListener}    from '@angular/core';
import { ViewController } from 'ionic-angular';
export class ModalPage {
  private exitData = {proceed:false};
  constructor(
    private view:ViewController
  )
  ...
  @HostListener('document:keydown.escape', ['$event']) 
  onKeydownHandler(event: KeyboardEvent) {
    this.view.dismiss(this.exitData);
  }
}

here提供。