我有一个搜索栏组件,大多数情况下都可以使用。我的html已设置
<ion-searchbar [(ngModel)]="searchTerm" placeholder="Search"
(ionInput)=searchTermChange()>
</ion-searchbar>
我的组件大致如下:
@Input() settings = new SearchSettings();
@Output() search = new EventEmitter<any>();
searchTerm = '';
searchDelayTimer: any;
constructor() { }
searchTermChange() {
clearTimeout(this.searchDelayTimer);
this.searchDelayTimer = setTimeout(() => {
this.search.emit(this.searchTerm);
}, this.settings.searchDelayMS);
}
完成输入后,组件将自动搜索一秒钟左右。但是,当我按下搜索栏内的Enter键时,我的searchTerm填充了
{"isTrusted":true}
更奇怪的是,即使没有触发SearchTermChange,我的过滤器也发生了变化。
这就是我使用过滤器的方式:
<app-search (search)="this.config.filter=$event"></app-search>
即使我未触发输入搜索事件,为什么仍会触发搜索事件?