首页 > 解决方案 > 有没有办法在输入 3 个字符后触发选择事件?

问题描述

IM试图在选择输入中的用户键入3个字符之后触发事件,基本上,IVE获得了仅当Select文本框上有3个字符时,才能加载Select的所有选项。

我怎样才能做到这一点?

我的html:

    <fnd-extended-select label="Seleziona Insegna:" [autocomplete]="true"  [(ngModel)]="filter.ensign" (click)="ensignValues($event)">
      <fnd-option *ngFor="let p of ensignValue?.ensign" [value]="p.id">{{p.description}}</fnd-option>
    </fnd-extended-select>

我的组件.ts:

  ensignValues() {

    this.accordiService.ensignValues().subscribe(
      (res: EnsignFilter) => {
        this.ensignValue = new EnsignFilter(res);
        console.log(res);

      },
      errors => {
        Utils.notifyErrors(errors, this.notificationsService);
      });
  }

标签: htmlangulartypescriptbutton

解决方案


因此,仅当您的输入长度为 时才调用该 ensignValues 方法>= 3。为此,只需检查模型更改。但是在获得结果后,您需要通过用户输入的文本来过滤它们,您可以创建自定义过滤管道。

<fnd-extended-select label="Seleziona Insegna:" [autocomplete]="true"  [(ngModel)]="filter.ensign" (change)="changed($event)">
  <fnd-option *ngFor="let p of ensignValue?.ensign" [value]="p.id">{{p.description}}</fnd-option>
</fnd-extended-select>

然后在组件中,您可以使用以下方法:

changed(event) {
 if(this.filter.ensign.length >= 3) {
  this.ensignValues();
 }
}

推荐阅读