首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何让ng2-bootstrap datepicker隐藏

如何让ng2-bootstrap datepicker隐藏
EN

Stack Overflow用户
提问于 2016-07-05 20:15:38
回答 3查看 2.9K关注 0票数 1

我使用ng2-bootstrap日期选择器,当我点击日期选择器时,它仍然显示,如何隐藏它?我的html代码是below.please帮助我,谢谢!

代码语言:javascript
复制
<input type="text" [ngModel]="dt.toLocaleDateString()" (focus)="showDatePicker = true" style="width:300px;">
<div *ngIf="showDatePicker" style="position: absolute; z-index:10; min-height:290px;">
    <datepicker [(ngModel)]="dt"  [showWeeks]="true" ></datepicker>
</div>

EN

回答 3

Stack Overflow用户

发布于 2016-07-21 05:11:00

我也有同样的问题。就目前而言,这似乎是不可能的。这位作者似乎正在写新版本。请参阅存储库:HERE

票数 0
EN

Stack Overflow用户

发布于 2016-07-22 19:43:00

你可以通过事件目标( DatePickerPopupDirective) =“close ($event.target)”来使用类名和id来关闭datepicket弹出窗口(即click),这对我很有效。

在我的datepicker.component.html模板中:

代码语言:javascript
复制
  <div *ngIf="opened" class="dateclass">
<datepicker  [(ngModel)]="dt" [minDate]="minDate" [formatDayHeader]="E"   
    (click)="close($event.target)"
    [showWeeks]="false"></datepicker>
</div>

由于ng2-bootstrap datepicker使用"btn btn-default btn-sm“作为日期和年份的类名,因此我们在if条件中使用id和classname。

代码语言:javascript
复制
public close(e:HTMLElement): void {
    if(e.className == 'btn btn-default btn-sm' && e.id !== 'undefined-title'){
    this.opened = false;
    }
}

我的整个日期选择器组件如下所示:

代码语言:javascript
复制
import { Component, OnInit, Input } from '@angular/core';
import {CORE_DIRECTIVES} from '@angular/common';
import {DATEPICKER_DIRECTIVES} from 'ng2-bootstrap/ng2-bootstrap';
import { FORM_DIRECTIVES }from '@angular/forms';

@Component({
  moduleId: module.id,
  selector: 'app-datepicker',
  templateUrl: 'datepicker.component.html',
  directives: [DATEPICKER_DIRECTIVES, FORM_DIRECTIVES, CORE_DIRECTIVES],
  styleUrls: ['datepicker.component.css'],
  exportAs: 'dateref'
})
export class DatepickerComponent implements OnInit {
  @Input()  private dt: Date = new Date();
  public minDate: Date = void 0;
  public events: Array<any>;
  private opened: boolean = false;
  constructor() {
    this.minDate = new Date();
  }
  public getDate(): any {
   return (this.dt && this.dt.getTime());
  }

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

  public close(e:HTMLElement): void {
    if(e.className == 'btn btn-default btn-sm' && e.id !== 'undefined-title'){
    this.opened = false;
    }
  }
 ngOnInit() {
 }
}

在我的父模板中,我使用exportAs 'dateref‘引用@ViewChild('dp') datePicker;作为:

代码语言:javascript
复制
<app-datepicker #dp="dateref"></app-datepicker>
票数 0
EN

Stack Overflow用户

发布于 2017-04-16 07:29:28

这是我的代码,它工作得很好:

代码语言:javascript
复制
<div class="input-group">
    <input type="text" class="form-control "
           (focus)="showDatePicker = !showDatePicker" name="inputBeginDate"
           value="{{dt | date:'MM/dd/yy'}}"/>
    <span class="input-group-addon" dropdownToggle
          (click)="showDatePicker = !showDatePicker"><i class="fa fa-calendar"></i></span>
    <div *ngIf="showDatePicker"
         style="position: absolute; z-index:10; min-height:290px;">
        <datepicker name="date" [showWeeks]="false" [(ngModel)]="dt" (ngModelChange)="setDate(dt);getInvoices(invoiceFilters)" (selectionDone)="showDatePicker = false"></datepicker>
    </div>
</div>
票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/38203207

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档