角反应形式:在值更改之前检测用户输入

时间:2019-07-15 09:31:52

标签: angular angular-reactive-forms

我知道您可以使用Angular Reactive Forms中可观察到的valueChanges来检测输入字段中的值是否已更改:

inputControl.valueChanges.subscribe(() => {
    // fires when the input value has actually changed
});

但是,有没有一种方法可以订阅以观察用户何时按下了一个键,即之前输入中的值发生了变化?

我需要这样做,以便可以应用动态验证,例如:

  1. 用户按下键
  2. 在应用验证之前,我需要知道该密钥是什么
  3. 然后验证对输入的更改值

1 个答案:

答案 0 :(得分:0)

  

有没有一种方法可以在用户按下按键时进行订阅,   在输入值改变之前?

onkeyup事件:

 <input formControlName="yourcontrol" (keyup)="onKeyUp($event)">

编辑:

您需要在 AbstractControl elememnt 上订阅事件keyup

请参见stackblitz

您还可以使用ElementRef创建有关您的要求的指令来访问您的元素。