Angular 2在指令中获取用户输入

时间:2016-07-11 18:11:19

标签: angular directive

我尝试创建一个数字/数字输入指令,这意味着我想允许输入,如: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中获取它。什么是格式化输入的最佳方式:正则表达式?

感谢您的耐心和想法!

1 个答案:

答案 0 :(得分:1)

您可以使用keyup事件,因为这是更新值的时间。而且您不需要RegEx就可以检查keyCode的范围。看到这个plunkr:

http://plnkr.co/edit/xyAy2KjPia1qncqAcpMj?p=preview&open=app%2Fapp.component.ts