如何在输入字段的ng-bootstrap Datepicker中检测日期选择?

fro*_*.io 7 html5 datepicker ng-bootstrap angular

我们在项目中使用ng-bootstrap Datepicker作为指令

<input class="form-control"
         name="dp" ngbDatepicker #d="ngbDatepicker" (blur)="d.close()" [(ngModel)]="model"
         (ngModelChange)="onDateSelected()">
Run Code Online (Sandbox Code Playgroud)

目前的行为是onDateSelected()和每一个时间变化的输入领域取得了当选择在日期选择器的日期被称为。

期望的行为是onDateSelected()被称为每当在在日期选择器或将光标移动出的日期用户点击<input>(即模糊)。

我的方法是更改(ngModelChange)(blur)

<input class="form-control"
         name="dp" ngbDatepicker #d="ngbDatepicker" (blur)="d.close(); onDateSelected()"
         [(ngModel)]="model">
Run Code Online (Sandbox Code Playgroud)

但是,当从日期选择器中选择一个日期时,这将导致onDateSelected() 无法调用-之所以有意义,是因为光标不在内<input>。但是,dateSelected在搜索我可以调用的ng-bootstrap文档时,找不到某种-Event onDateSelected()

<input class="form-control"
         name="dp" ngbDatepicker #d="ngbDatepicker" (blur)="d.close(); onDateSelected()"
/* missing -> */ (dateSelected)="onDateSelected()" /* <- */ [(ngModel)]="model">
Run Code Online (Sandbox Code Playgroud)

我有什么想念的吗?或者也许是实现此行为的另一种方法?我想不出是唯一有此要求的人...

fro*_*.io 8

同时,该问题已关闭,并且在1.1.0中将发生(dateSelect)事件:https : //github.com/ng-bootstrap/ng-bootstrap/pull/2254

  • 仅当您使用日历选择日期时才会触发该事件。手动输入日期时不会。 (3认同)

小智 6

<input class="form-control"
     name="dp" ngbDatepicker #d="ngbDatepicker" (blur)="d.close()" 
[(ngModel)]="model"
     (select)="onDateSelected()">
Run Code Online (Sandbox Code Playgroud)

这将起作用并onDateSelected()在您在 datepicker 中选择日期时调用