首页 > 解决方案 > 在 Android 手机上未调用 onkeypress 的 Angular 指令

问题描述

我有一个 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 serve),它运行良好,但是当我在 Android 手机上运行时,它根本不会启动。

为什么会这样?

标签: androidangularionic-framework

解决方案


keypress不适用于移动设备。用于ionInput监听输入变化。另外,似乎您只想只允许数字,对吗?那么为什么不只是<ion-input type="number">


推荐阅读