NGX-引导的日期选择器(onShown)事件被触发之前真的显示日历

问题描述 投票:1回答:1

我与ngx-bootstraprangeDatePicker工作,和我想尽快rangeDatePicker显示去前一个月,用它我的处理函数,这就是所谓与onShown事件中。

代码如下:在HTML

 <input id="input-range-dates" type="text" class="form-control" bsDaterangepicker #drp="bsDaterangepicker" [bsConfig]="bsConfig"
                 [(ngModel)]="bsRangeValue" (ngModelChange)="onChanges($event, drp)" [maxDate]="maxDate" placement="bottom"
                     (onShown)="handler('onShown')" (onHidden)="handler('onHidden')" readonly/>

正如你所看到的,有很多特性,但是对于这个问题只有一个是

(onShown)="handler('onShown')"

在JS

handler(value: string): void {
if ('onShown' === value) {
      [].slice.call(document.getElementsByClassName('previous')).filter(element =>
        element.innerText === '‹')[0].click(); // previous Month
  }
}

但是,如果我调试它在Chrome,我可以看到,该按钮的日历尚未出现,然后单击操作不会更改月份。

有人可以帮助呢?我卡住了..

angular typescript datepicker ngx-bootstrap
1个回答
0
投票

而不是使用的onShowonHidden事件相同的处理方法:

(onShown)="handler('onShown')" (onHidden)="handler('onHidden')"

.

handler(value: string): void {
if ('onShown' === value) {
      //...
  }
}

我建议建立两种不同的方法,并通过内部的真实$event

(onShown)="onShow($event)" (onHidden)="onHidden($event)"

这样你就可以与该事件玩,看看发生了什么:

onShow(event) {
  console.log(event);
  // ...
}

onHidden(event) {
  // ...
}
© www.soinside.com 2019 - 2024. All rights reserved.