[英]Initialize input populated by ng-bootstrap datepicker to blank
[英]How to detect date selection in ng-bootstrap Datepicker on input field?
我们在项目中使用ng-bootstrap Datepicker 作为指令:
<input class="form-control"
name="dp" ngbDatepicker #d="ngbDatepicker" (blur)="d.close()" [(ngModel)]="model"
(ngModelChange)="onDateSelected()">
当前行为是在选择日期选择器中的日期时以及每次对输入字段进行更改时调用onDateSelected()
。
所需的行为是只要用户单击日期选择器中的日期或将光标移出<input>
(即模糊),就会调用onDateSelected()
)。
我的方法是将(ngModelChange)
更改为(blur)
:
<input class="form-control"
name="dp" ngbDatepicker #d="ngbDatepicker" (blur)="d.close(); onDateSelected()"
[(ngModel)]="model">
但这会导致onDateSelected()
不被调用,当从日期选择器中选择日期时 - 这有点道理,因为光标不在<input>
。 但是,我找不到某种dateSelected
搜索时-活动NG-引导文档上,我可以调用onDateSelected()
<input class="form-control"
name="dp" ngbDatepicker #d="ngbDatepicker" (blur)="d.close(); onDateSelected()"
/* missing -> */ (dateSelected)="onDateSelected()" /* <- */ [(ngModel)]="model">
有什么我想念的吗? 或者也许是实现这种行为的另一种方式? 我想不出是唯一一个有这个要求的人......
同时, issue已经关闭,1.1.0 将有一个 (dateSelect) 事件: https : //github.com/ng-bootstrap/ng-bootstrap/pull/2254
<input class="form-control"
name="dp" ngbDatepicker #d="ngbDatepicker" (blur)="d.close()"
[(ngModel)]="model"
(select)="onDateSelected()">
这将起作用,并且每当您在onDateSelected()
选择日期时都会调用onDateSelected()
这是解决方案:
<input
class="form-control"
name="startDate"
[(ngModel)]="startDate"
(dateSelect)="doSomething()"
(blur)="doSomething()"
ngbDatepicker
#startDate="ngbDatepicker"
>
这里 (dateSelect) 处理从日历选择器中进行选择, (blur) 在输入失去焦点时处理手动输入。
使用dateSelect
对我dateSelect
:
<input class="form-control"
name="dp" ngbDatepicker #d="ngbDatepicker" (blur)="d.close(); ()onDateSelected()"
[(ngModel)]="model">
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.