編寫一個指令,它將聽取日期選擇器外部的點擊。 主要觀點是檢查接收到點擊的DOM元素是否具有指令。
指令:
@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);
}
}
}
,並將其添加像這樣:
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
肯定..的plunkr工作,但現在我有2個日期選擇器。它是同時顯示日期選擇器..它在http://plnkr.co/edit/gjyNnAG9wqucbyyFgl85?p=preview – gerl
我會看看! – Vega