2017-05-16 201 views
3

我正在使用帶有Angular 4的PrimeNG組件,但是我遇到了一個問題 - 那就是當我的按鈕被點擊時如何顯示日曆?以編程方式打開primeng日曆

鏈接https://plnkr.co/edit/lYbT8dfcFD5m62XpbmCG

@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( '歷')的模板元素參考。我也嘗試使用@ViewChild('calendar#inputfield')應用焦點,但這不起作用。

所以是的 - 任何想法如何點擊一個按鈕以編程方式打開日曆?

回答

6

您可以使用primeng日曆

​​

Modified Plunker

+0

showOverlay方法爲何日曆不顯示,如果我評論的停止傳播? – chris

+1

因爲點擊事件冒泡並且日曆訂閱了它https://github.com/primefaces/primeng/blob/v1.0.0-beta.20/components/calendar/calendar.ts#L260 – yurzui

+0

在代碼中的位置是日曆鏈接到按鈕?因爲我有相同的問題,但在日曆中有一個標籤 –