我尝试创建一个数字/数字输入指令,这意味着我想允许输入,如:451,45或451.45
目前该指令如下所示:
import {Directive, ElementRef, HostListener, Input} from '@angular/core';
@Directive({
selector: '[numbers-only]'
})
export class NumbersOnlyDirective {
private el: HTMLElement;
constructor(el: ElementRef) {
this.el = el.nativeElement;
}
@HostListener('keydown', ['$event']) onKeyDown(e: Event) {
}
}
下一步是获取元素的当前值,并在每次关键事件时重新格式化。 我的问题:如何获得指令的当前值,我无法弄清楚如何从ElementRef中获取它。什么是格式化输入的最佳方式:正则表达式?
感谢您的耐心和想法!
答案 0 :(得分:1)
您可以使用keyup事件,因为这是更新值的时间。而且您不需要RegEx
就可以检查keyCode
的范围。看到这个plunkr:
http://plnkr.co/edit/xyAy2KjPia1qncqAcpMj?p=preview&open=app%2Fapp.component.ts