在 ionic-calendar 2 中使用点击事件时遇到问题
Having trouble using click events with ionic-calendar 2
我正在尝试使用 ionic-calendar 2 的(点击)事件,如果用户点击一个已经过去的日期,它会禁用一个按钮,我的问题是当我第一次点击一个过去的日期时按钮没有被禁用,但我第二次按下它时它禁用了按钮,日历本身似乎没有识别出有人在第一次点击时点击了不同的日期。
HTML
<calendar (click)='passedDate()' [eventSource]='eventSource'
[calendarMode]='calendar.mode'
[currentDate]='calendar.currentDate'
(onEventSelected)='onEventSelected($event)'
(onTitleChanged)='onViewTitleChanged($event)'
(onTimeSelected)='onTimeSelected($event)'
step='30'
class='calendar'>
</calendar>
<button ion-button (click)='appointments()' id="date" block [disabled]="block">
Next
</button>
打字稿
eventSource =[];
viewTitle: string;
selectedDay = new Date();
block = false; //If user clicks on a date that has already passed this value turns true
calendar = {
mode: 'month',
currentDate: ''
}
onViewTitleChanged(title){
this.viewTitle = title;
}
onTimeSelected(ev){
this.selectedDay = ev.selectedTime;
}
passedDate(){
const date = new Date();
if(this.selectedDay < date){
this.block = true;
}
else { this.block = false;}
}
这是我第一次使用 ion-calendar 2,所以我不确定点击事件应该如何处理它,但我希望如果用户点击已经过去的日期,它会立即禁用按钮。
而不是 (click)=“passedDate()”
你可以试试
(onCurrentDateChanged)="passedDate($event)"
.
像这样:
<calendar [eventSource]="eventSource"
[calendarMode]="calendar.mode"
[currentDate]="calendar.currentDate"
(onCurrentDateChanged)="passedDate($event)"
(onRangeChanged)="reloadSource(startTime, endTime)"
(onEventSelected)="onEventSelected($event)"
(onTitleChanged)="onViewTitleChanged($event)"
step="30">
</calendar>
在这样的打字稿中:
passedDate(selectedDate){
const date = new Date();
console.log(selectedDate);
if(selectedDate < date){
this.block = true;
}
else { this.block = false;}
}
Stackblitz 工作示例:https://stackblitz.com/edit/ionic-web9ga
我正在尝试使用 ionic-calendar 2 的(点击)事件,如果用户点击一个已经过去的日期,它会禁用一个按钮,我的问题是当我第一次点击一个过去的日期时按钮没有被禁用,但我第二次按下它时它禁用了按钮,日历本身似乎没有识别出有人在第一次点击时点击了不同的日期。
HTML
<calendar (click)='passedDate()' [eventSource]='eventSource'
[calendarMode]='calendar.mode'
[currentDate]='calendar.currentDate'
(onEventSelected)='onEventSelected($event)'
(onTitleChanged)='onViewTitleChanged($event)'
(onTimeSelected)='onTimeSelected($event)'
step='30'
class='calendar'>
</calendar>
<button ion-button (click)='appointments()' id="date" block [disabled]="block">
Next
</button>
打字稿
eventSource =[];
viewTitle: string;
selectedDay = new Date();
block = false; //If user clicks on a date that has already passed this value turns true
calendar = {
mode: 'month',
currentDate: ''
}
onViewTitleChanged(title){
this.viewTitle = title;
}
onTimeSelected(ev){
this.selectedDay = ev.selectedTime;
}
passedDate(){
const date = new Date();
if(this.selectedDay < date){
this.block = true;
}
else { this.block = false;}
}
这是我第一次使用 ion-calendar 2,所以我不确定点击事件应该如何处理它,但我希望如果用户点击已经过去的日期,它会立即禁用按钮。
而不是 (click)=“passedDate()”
你可以试试
(onCurrentDateChanged)="passedDate($event)"
.
像这样:
<calendar [eventSource]="eventSource"
[calendarMode]="calendar.mode"
[currentDate]="calendar.currentDate"
(onCurrentDateChanged)="passedDate($event)"
(onRangeChanged)="reloadSource(startTime, endTime)"
(onEventSelected)="onEventSelected($event)"
(onTitleChanged)="onViewTitleChanged($event)"
step="30">
</calendar>
在这样的打字稿中:
passedDate(selectedDate){
const date = new Date();
console.log(selectedDate);
if(selectedDate < date){
this.block = true;
}
else { this.block = false;}
}
Stackblitz 工作示例:https://stackblitz.com/edit/ionic-web9ga