android - 在 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 手机上运行时,它根本不会启动。
为什么会这样?
解决方案
keypress
不适用于移动设备。用于ionInput
监听输入变化。另外,似乎您只想只允许数字,对吗?那么为什么不只是<ion-input type="number">
推荐阅读
- javascript - Javascript - 有多个正则表达式来创建 url
- python - 在 pandas 的组中查找第一个非零元素
- javascript - 带有布尔值的条件 - TypeScript
- symfony - 在 Symfony ApiPlatform 中具有同一类的属性
- swift - 将 PCM 缓冲区转换为 AAC ELD 格式,反之亦然
- python - 蟒蛇 | 检查 dict{} 项目是否在 list[] 中
- angular - 使用参数发出 Get 请求
- css - 粘性表格标题边框被元素重叠
- c# - 模拟返回只读结构的接口方法
- python - 使用 numpy 找到由两个 3 位数字的乘积构成的最大回文