如何重写nz-range-picker的清除动作?

今天遇到一个问题,nz-zorro组件库的日期组件nz-range-picker,点击清除日期按钮时,无法触发nzOnCalendarChange回调函数,导致无法重新加载数据,如何解决这一问题呢?
我们可以通过ViewChild获取nz-range-picker的实例,然后访问其内部的datePicker属性,重写其onClickClear方法即可。

 <nz-range-picker  #rangePicker (nzOnCalendarChange)="changeDateRange($event)"></nz-range-picker>
 import { Component, ElementRef, ViewChild } from '@angular/core';
 import { NzRangePickerComponent } from 'ng-zorro-antd/date-picker';
...
 @ViewChild(NzRangePickerComponent) rangePicker: NzRangePickerComponent;
...
 ngAfterViewInit() {
    // 备选方案:直接监听清除按钮(可选)
    const originalOnClickClear = this.rangePicker.datePicker.onClickClear;
    this.rangePicker.datePicker.onClickClear = (e)=>{
      console.log('点击清除日期按钮>>>>');
      originalOnClickClear.call(this.rangePicker.datePicker,e);//调用之前的清除逻辑
      this.search.start_datetime = '';
      this.search.end_datetime = '';
      this.doSearch();
    }
 }


这里需要注意的是,之前的onClickClear动作还得调用一下,可以用call函数。

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容