未在Android手机上调用带有onkeypress的Angular指令

时间:2019-05-11 03:21:31

标签: android angular ionic-framework

我有一个Ionic 4 / Angular 7应用程序,其中有以下自定义指令。

    @Directive({
      selector: '[appNumeric]'
    })

    export class NumericDirective {
      //HostListener decorator handle event handlers for input (onKeyPress)
      @HostListener('keypress', ['$event'])

      public onkeypress(ev : any): void {  
        let isNumeric = ev.charCode >= 48 && ev.keyCode <= 57;
        if (!isNumeric)
          ev.preventDefault();      
      }
    }

我将其应用如下

<ion-input appNumeric>

当我在PC上的Chrome上测试运行时(例如,Ionic服务),它可以正常运行,但是当我在Android手机上运行时,它根本无法启动。

有人知道为什么会这样吗?

在此先感谢您的帮助

1 个答案:

答案 0 :(得分:1)

keypress在移动设备上不起作用。使用ionInput监听输入更改。另外,似乎您只想只允许输入数字,对吧?那么为什么不<ion-input type="number">