我与ngx-bootstrap的rangeDatePicker工作,和我想尽快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,我可以看到,该按钮的日历尚未出现,然后单击操作不会更改月份。
有人可以帮助呢?我卡住了..
而不是使用的onShow
和onHidden
事件相同的处理方法:
(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) {
// ...
}