我使用的是带有Angular 4的PrimeNG组件,但我遇到了一个问题 - 那就是当我点击我的按钮时如何显示日历?
请参阅Plunker
@Component({
selector: 'my-app',
template: `
<div>
<h2>Hello {{name}}</h2>
<button pButton type="button" (click)="openCalendar($event)" label="Open Calendar"></button>
<br/><br/>
<p-calendar #calendar [(ngModel)]="value"></p-calendar>
</div>
`,
})
export class App {
name: string;
value: Date;
@ViewChild('calendar')
calendar: any;
constructor() {
this.name = `Angular! v${VERSION.full}`
}
openCalendar(event: any) {
console.log(event);
}
}
我尝试使用@ViewChild('calendar')
获取模板元素引用。我也尝试使用@ViewChild('calendar#inputfield')
来应用焦点,但这并不起作用。
知道如何点击按钮以编程方式打开日历吗?
答案 0 :(得分:9)
您可以在primeng日历上使用showOverlay
方法
openCalendar(event: any) {
this.calendar.showOverlay(this.calendar.inputfieldViewChild.nativeElement);
event.stopPropagation();
}
<强> Modified Plunker 强>