我如何等待2个dateChange事件并执行一个函数

时间:2018-09-11 10:40:48

标签: angular angular-material

我有2个MatDatepickers作为开始日期和结束日期,并且我在dateChange上触发了searchFilter函数,如下所示:

<input matInput [matDatepicker]="picker" placeholder="Start date" 
(dateChange)="searchFilter($event.value)">

<input matInput [matDatepicker]="picker2" placeholder="End date" 
(dateChange)="searchFilter($event.value)">

如果这两个事件都被触发,则我需要将我的searchFilter与事件数据一起应用。我是Observables的新手。我知道我可以使用zip方法来等待2个可观察对象,但是我如何仅将这些事件和这些事件具体压缩?有更好的方法吗?

1 个答案:

答案 0 :(得分:0)

您可以仅使用NgModel指令创建模板驱动的表单。

<input matInput [matDatepicker]="picker" placeholder="Start date"[(ngModel)]="this.startDate"(dateChange)="searchFilter()">
<input matInput [matDatepicker]="picker2" placeholder="End date" [(ngModel)]="this.endDate" (dateChange)="searchFilter()">

并在component.ts中声明变量并对其进行初始化,然后创建函数

startDate: any = '';
endDate: any = '';
searchFilter(): any {
 if(this.startDate != '' && this.endDate != '') do something
}