如何使用ng2-bootstrap datepicker作为弹出模式?

时间:2016-07-07 10:54:08

标签: typescript angular datepicker ng2-bootstrap

我在项目中使用ng2-bootstrap日期选择器。我想点击日历图标时显示日期选择器。并且还希望在选择日期时隐藏它。

<label>Date:</label> 
<div class="datepickerDiv">
   <input type="text" value="{{ getDate() | date:'dd-MMMM-yyyy' }}" class="datepicker"> 
        <span class="cal-icon" (click)="open()"><i class="fa fa-calendar-check-o" aria-hidden="true"></i></span>
        <span class="clearDate" (click)="clearDate()"><i class="fa fa-times-circle" aria-hidden="true"></i></span>
        <ul class="datepicker-ul" role="menu" *ngIf="opened">
             <datepicker [(ngModel)]="Date" [minDate]="minDate" [showWeeks]="false"></datepicker>
        </ul>
</div>

我的组件如下

private opened:boolean = false;
public open():void {
    this.opened = !this.opened;
}

public getDate():number {
    return this.Date && this.Date.getTime() || new Date().getTime();
}

private clearDate() {
    this.Date = null;
}

现在问题是只有当我再次点击图标时它才会关闭。

1 个答案:

答案 0 :(得分:3)

在两个函数中分开“打开”和“关闭”(现在你的“打开”实际上是“切换”)。然后使用(尚未记录)事件selectionDone($event)来关闭日期选择器。

<datepicker [(ngModel)]="dt" [minDate]="minDate" [showWeeks]="false" (selectionDone)="onSelectionDone($event)"></datepicker>

并在您的代码中:

public onSelectionDone(a) {
    this.close();
}