目前我正在使用:
-
ng-bootstrap 1.0.0-alpha.24
-
angular / core 4.0.0
-
bootstrap 4.0.0-alpha.6
我想询问是否有人知道如何在焦点丢失或打开另一个datepicker时自动关闭日期选择器 .
此外,如果可以使用typescript关闭组件代码中的datepicker,我现在也想要 .
如果有人可以提供有效的plunker或代码片段,那就太好了 .
我的实际实施:
<div class="input-group">
<input class="rect-border full-width"
placeholder="YYMMDD"
[(ngModel)]="selectedDate"
ngbDatepicker
#datePickerInput="ngbDatepicker"
(keydown.arrowup)="incrementDate()"
(keydown.arrowdown)="decrementDate()"
(ngModelChange)="validate('modelChanged')"
(blur)="validate(null)"
[disabled]="disabled"
[ngClass]="{'input-required': required, 'normal-color': valid, 'picker-disabled': disabled}">
<div class="input-group-addon rect-border"
(click)="disabled ? true : datePickerInput.toggle()"
[ngClass]="{'picker-button-disabled': disabled}">
<img src="assets/img/calendar-icon.svg" class="datpickerToggle"/>
</div>
</div>
Plunker:ng-bootstrap team demo
我已经搜索了很长时间,我对角度和这些东西也很新 .
谢谢您的帮助!
更新:
可能的方法:
提供了很多好的解决方案 . 我也发现自己可以使用类NgbInputDatepicker来关闭datePicker(我总是使用NgbDatepicker,所以它不起作用) .
@ViewChild('datePickerInput') datePicker: NgbInputDatepicker;
this.datePicker.close();
2 回答
你可以从你的HTML本身打开和关闭你的日期选择器
例如:
还有很多功能可以在你的HTML中使用 . 一些是
close()
,isOpen()
,manualDateChange()
,open()
,toggle()
,validate()
等你可以在这个plunkr中引用它http://plnkr.co/edit/G1b6fFrtVZwEz4lsou8n?p=preview在打字稿中你可以简单地定义一个变量
datepickerVisibility
然后在你的模板中使用* ngIf来显示或隐藏你的datepicker组件 . 这是一个演示代码:模板:
<datepicker *ngIf="datepickerVisibility" [ngModel]="date"> </datepicker>
组件:
private datepickerVisibility: boolean = false; // Show the datepicker showDatepicker() { this.datepickerVisibility = true; }
编辑:
因此你可以使用jQuery . 将jQuery js添加到index.html和typescript组件中,使用jQuery,如下所示:
在您的模板文件中,只需将id datepicker01添加到datepicker div
<div id="datepicker01" ...>