Schreiben Sie eine Direktive, die auf die Klicks außerhalb des Datepickers hört. Der Hauptpunkt besteht darin, zu überprüfen, wann immer das DOM-Element, das den Klick erhält, derjenige ist, auf dem die Direktive steht.
Richtlinie:
@Directive({
selector: '[clickOutside]'
})
export class ClickOutsideDirective {
constructor(private elementRef: ElementRef) {
}
@Output()
clickOutside = new EventEmitter<Event>();
@HostListener('document:click', ['$event', '$event.target'])
onClick(event: MouseEvent, targetElement: HTMLElement): void {
if (!targetElement) {
return;
}
const clickedInside = this.elementRef.nativeElement.contains(targetElement);
if (!clickedInside) {
this.clickOutside.emit(event);
}
}
}
Und es hinzufügen wie folgt:
HTML:
<input (clickOutside)="d2.toggle()" class="form-control" placeholder="yyyy-mm-dd"
name="dp" placement="bottom-right" [(ngModel)]="model2" ngbDatepicker
#d2="ngbDatepicker" (click)="d2.toggle()" >
DEMO
sicher .. die plunkr funktioniert, aber jetzt, wo ich zwei Datumsauswahl haben .. es ist die Anzeige sowohl Datum Pflücker .. Seine in http://plnkr.co/edit/gjyNnAG9wqucbyyFgl85?p=preview – gerl
Ich werde einen Blick darauf werfen! – Vega