Angular Directive预期有1个参数,但有0个

时间:2020-07-03 07:32:10

标签: angular build directive

当我运行“ ng build --prod”来构建我的角度应用程序时,它抛出错误“ /folio-header.component.html(25,11):指令InputNumberOnlyDirective,期望1个参数,但得到0。 “

这是html代码:

<input inputNumberOnly class="form-control" [(ngModel)]="folioDto.folioVolume" [ngModelOptions]="{standalone: true}">

这是指令:

import {Directive, HostListener} from '@angular/core';

@Directive({
  selector: '[inputNumberOnly]'
})
export class InputNumberOnlyDirective {

  constructor() {
  }

  @HostListener('keypress') onkeypress(e) {
    let event = e || window.event;
    if (event) {
      return this.isNumberKey(event);
    }
  }

  isNumberKey(event) {
    const charCode = (event.which) ? event.which : event.keyCode;
    if (charCode > 31 && (charCode < 48 || charCode > 57)) {
      return false;
    }
    return true;
  }
}

1 个答案:

答案 0 :(得分:0)

问题是您正在定义一个函数,该函数需要在以下位置监听事件

@HostListener('keypress') onkeypress(e) {

您可以通过添加添加事件参数来简单地解决此问题

@HostListener('keypress', ['$event']) onkeypress(e) {