我在AbstractControl(输入元素)中使用HostListener来尝试监听reset事件。但是,当我重置作为该输入元素的父级的表单时,HostListener不会触发。

您可以在以下代码中看到代码和错误:
http://plnkr.co/edit/BYX8RsqUgY4FHvjhyN1X?p=preview

提交此内容时,正确的结果是重置输入元素并清除成功类,但它不起作用。 ngModel中的@HostListener('reset')没有被触发。

调试时,您可以看到浏览器将reset事件触发到input元素,但是angular / javascript没有捕获。

最佳答案

在github.com上回答:
https://github.com/angular/angular/issues/16847



 @HostListener('ngModelChange', ['$event']) onModelChange(value: any) {
    if (!value) {
      console.log("reset?")
      // empty: probably reset, or just erased
      this.handleClasses();
    }
  }

09-17 05:02