html - 有没有办法在输入 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);
});
}
解决方案
因此,仅当您的输入长度为 时才调用该 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();
}
}
推荐阅读
- json - 如何从子查询中聚合多行?
- azure-data-factory - 文件名上的字符串函数并作为附加列添加
- ember.js - 是否可以使路线模型成为计算/跟踪的属性?
- asp.net - 如何在 ASP.NET ViewBag 中使用 Angular JS 括号来显示 ViewBag.title
- sockets - ZeroMQ 绑定 API zmq_bind() 到 127.0.0.1:5555 返回错误 19
- karate - 检查响应参数中的两种类型
- python - ROS2 RCLPY 库中的速率和睡眠函数
- objective-c - 如何使 Swift 类符合 Objective-C 协议,而不将其暴露给 Objective-C?
- python - 计算精度会给出不稳定的结果
- amazon-web-services - 在终端中运行 eb init 时出现服务错误