2017-09-06 28 views
0

我試圖通過對輸入處理click事件使用的離子2本機日期選取器:只讀屬性,並不能防止鍵盤顯示

<ion-item> 
    <ion-label stacked>Start</ion-label> 
    <ion-input type="datetime" readonly="true" placeholder="Choose a date" formControlName="date" (click)="onDateClick($event)" tappable></ion-input> 
    </ion-item> 

readonly屬性似乎不是不防止鍵盤第一次顯示,我必須再次點擊才能讓本地日期選擇器顯示(在onDateClick($event)中處理)。

我試圖用disabled屬性,它的作品,但風格是不同的,在某種程度上它看起來像它採用反應形式時,是不是一個好模式...

任何想法如何防止這一首秀鍵盤?

***** EDIT *****

這裏是onDateClick功能

onDateClick(e: Event) { 
    console.log('NewEventPage#onDateClick'); 

    if (this.platform.is('cordova')) { 
     this.datePicker.show({ 
     date: new Date(), 
     mode: 'datetime', 
     allowOldDates: false 
     }).then(
     date => { 
      console.log('Picked date ', date); 
      this.startDate = moment(date); 
      this.newEventForm.get('date').setValue(moment(date).format('LLLL')); 
     }, 
     err => console.log('Error occurred while getting date: ', err) 
    ); 
    } else { 
     let tmp = new Date(); 
     this.startDate = moment(tmp); 
     this.newEventForm.get('date').setValue(moment(tmp).format('LLLL')); 
    } 
    } 

回答

0

像這樣做:

<ion-item> 
    <ion-label stacked>Start</ion-label> 
    <ion-input type="datetime" [readonly]="true" placeholder="Choose a date" formControlName="date" (click)="onDateClick($event)" tappable></ion-input> 
    </ion-item> 

readonly是離子的輸入屬性 - 這就是爲什麼它必須寫在括號內。你可以找到更多的信息here

+0

問題仍然與您的解決方案事件(儘管事實上,它看起來像實現它的正確方式) –

+0

@Manuel你究竟在做點擊事件? –

+0

剛剛更新了我的帖子,以便您可以查看點擊事件功能的作用 –