focus
事件,并通过使用模板引用来实现,如下所示:<input ngbDatepicker #d="ngbDatepicker" (focus)="d.open()">
或者,您可以根据日期选择器中的弹出窗示例,在按钮单击上添加日期选择器的触发器toggle
事件。
// Component
@Component({
selector: 'ngbd-datepicker-popup',
templateUrl: './datepicker-popup.html'
})
export class NgbdDatepickerPopup {
model;
}
// HTML
<div class="input-group">
<input class="form-control" placeholder="yyyy-mm-dd" name="dp" [(ngModel)]="model" ngbDatepicker #d="ngbDatepicker">
<div class="input-group-addon" (click)="d.toggle()" >
<img src="img/calendar-icon.svg" style="width: 1.2rem; height: 1rem; cursor: pointer;"/>
</div>
</div>
NgbDateParserFormatter
来创建自定义格式化程序,如https://github.com/ng-bootstrap/ng-bootstrap/blob/master/src/datepicker/ngb-date-parser-formatter.ts所示,并且需要在组件中添加它作为提供者,例如`{provide: NgbDateParserFormatter, useClass: CustomDateParserFormatter}`,就像https://ng-bootstrap.github.io/#/components/datepicker页面上的“日期选择器的国际化”示例一样。 - ranakrunal9在付出了很多的努力并得到了ranakrunal9的建议后,我已经达到了以下的代码基础。它在各个方面都运行良好(但仍然存在一个问题,如果我在日期选择器外部单击,日期选择器将不会关闭)。这里是plunker。
import {Component, NgModule} from '@angular/core'
import {BrowserModule} from '@angular/platform-browser'
import {NgbModule, NgbDateParserFormatter, NgbDateStruct} from '@ng-bootstrap/ng-bootstrap';
import { Component, OnInit, Input, forwardRef } from '@angular/core';
import { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';
import { FormGroup, FormBuilder, Validators } from '@angular/forms';
@Component({
imports: [
NgbModule,
BrowserModule,
NgbDateParserFormatter
],
selector: 'my-app',
templateUrl: 'template.html'
})
export class App {
}
@NgModule({
imports: [ BrowserModule,
NgbModule.forRoot()],
providers : [
{provide: NgbDateParserFormatter, useClass: forwardRef(() => CustomDateParserFormatter)}
],
declarations: [ App ],
bootstrap: [ App ]
})
export class AppModule {}
export class CustomDateParserFormatter extends NgbDateParserFormatter {
parse(value: string): NgbDateStruct {
if (value) {
const dateParts = value.trim().split('/');
/*
Put your logic for parsing
*/
}
return null;
}
format(date: NgbDateStruct): string {
return date ?
date.day+'/'+date.month+'/'+date.year :
'';
}
}
bootstrap
的 CSS 吗? - ranakrunal9