angular - 在 angular2 中单击外部时关闭 ng-bootstrap 日期选择器

标签 angular datepicker bootstrap-4 ng-bootstrap

我正在使用 bootstrap4 日期选择器 https://ng-bootstrap.github.io/#/components/datepicker

我想在日历外部单击时关闭 datepicker。现在,当用户选择日期时,它将关闭。

我的 HTML 文件代码如下:

<input ngbDatepicker #d="ngbDatepicker" (click)="d.toggle();" [formControl]="eventForm.controls['event_date']" value="12/03/2017" type="text" [readonly]="true" autocomplete="off">  

我尝试在 body 标签中添加 (click)="d.close();" 。但是当我尝试从日历更改月份和年份时,它也很接近。
当用户在日历外部单击时,我必须在 HTMLcomponent 中做哪些更改才能关闭此 datepicker

最佳答案

是的,我遇到了同样的问题......这对我来说效果很好:

组件 HTML:

<input placeholder="{{ task.deadline.year }}-{{ task.deadline.month }}-{{ task.deadline.day }}" name="date" id="date" [(ngModel)]="task.deadline" ngbDatepicker  #d="ngbDatepicker" (click)="!completed && d.toggle(); $event.stopPropagation();" (document:click)="closeFix($event, d)" readonly>

和 TS(您唯一需要的是 closeFix() 函数):

closeFix(event, datePicker) {
  if(event.target.offsetParent == null)
    datePicker.close();
  else if(event.target.offsetParent.nodeName != "NGB-DATEPICKER")
    datePicker.close();
}

关于angular - 在 angular2 中单击外部时关闭 ng-bootstrap 日期选择器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42923201/

相关文章:

angular - Dart Angular示例

Angular4 组件继承与抽象类

forms - 输入时没有表单标签的表单验证 - Angular 2

javascript - md-datepicker 从数组中过滤日期

datepicker - 更改 Angular ui-bootstrap datepicker 日顺序

javascript - Bootstrap 4 下拉菜单不起作用

angular - 以 Angular 4 导航到嵌套/多个辅助路线

javascript - date 和 jsdate 对象的区别

c# - 长文字和图片排成一排,缩小图片

html - Bootstrap : navbar items moving when I reduce the page width