Angular 如何从ngbdatepicker禁用现有日期
我有数组现有数据。如何在从ngbdatepicker拾取日期时禁用现有数据 这是我过去的禁用代码Angular 如何从ngbdatepicker禁用现有日期,angular,ngb-datepicker,Angular,Ngb Datepicker,我有数组现有数据。如何在从ngbdatepicker拾取日期时禁用现有数据 这是我过去的禁用代码 var current = new Date(); current.setDate(current.getDate()); this.minDates = { year: current.getFullYear(), month: current.getMonth() + 1, day: cu
var current = new Date();
current.setDate(current.getDate());
this.minDates = {
year: current.getFullYear(),
month: current.getMonth() + 1,
day: current.getDate(),
};
这是我现有日期数组的代码
var avDateArray = [];
for(var i=0;i<this.tmpResponse[0].available_date.length;i++){
avDateArray.push(this.tmpResponse[0].available_date[i].start_date);
}
我搞混的是如何在angular中禁用ngbdatepicker中现有日期数组中的日期?您是否正在尝试禁用过去的日期?您可以这样做: 在你的组件上
minDate = undefined;
.
.
constructor(private config: NgbDatepickerConfig) {
const current = new Date();
this.minDate = {
year: current.getFullYear(),
month: current.getMonth() + 1,
day: current.getDate()
};
}
.
.
markDisabled(date: NgbDateStruct) {
const d = new Date(date.year, date.month - 1, date.day);
return d.getDate()===this.disabledDate.getDate() && d.getMonth()===this.disabledDate.getMonth && d.getYear()===this.disabledDate.getYear()
})
}
在component.html上,使用[minDate]输入绑定禁用过去的日期,使用[markDisabled]输入绑定禁用动态日期列表
<input class="form-control" ngbDatepicker [minDate]="minDate" [markDisabled]="markDisabled" (click)="datePicker.toggle()" #datePicker="ngbDatepicker" placeholder="yyyy-mm-dd">
禁用和限制日期
您可以使用[minDate]和[maxDate]输入限制可用于导航和选择的日期。如果不指定其中任何一个,您将拥有无限导航,年份选择框将显示从当前可见月份算起的[-10,+10]年
如果要禁用某些选择日期,例如周末,则必须提供[markDisabled]功能,将某些日期标记为不可选择。当您在月份之间导航时,它将在每个新可见的日子被调用
// disable the 13th of each month
const isDisabled = (date: NgbDate, current: {month: number}) => day.date === 13;
<ngb-datepicker [minDate]="{year: 2010, month: 1, day: 1}"
[maxDate]="{year: 2048, month: 12, day: 31}"
[markDisabled]="isDisabled">
</ngb-datepicker>
另请参阅以下链接:
只需创建一个带有禁用日期的数组
disabledDates:NgbDateStruct[]=[
{year:2019,month:2,day:26}
]
并创建一个禁用的函数
isDisabled=(date:NgbDateStruct,current: {month: number,year:number})=> {
//in current we have the month and the year actual
return this.disabledDates.find(x=>new NgbDate(x.year,x.month,x.day).equals(date))?
true:false;
}
//or briefly
isDisabled=(date:NgbDateStruct,current: {month: number,year:number})=>
this.disabledDates.find(x=>new NgbDate(x.year,x.month,x.day).equals(date))?true:false;
您的ngb日期选择器使用[markDisabled]
<ngb-datepicker #dp [(ngModel)]="model" (navigate)="date = $event.next"
[markDisabled]="isDisabled"></ngb-datepicker>
请参见否,我想禁用现有日期。我已经禁用了过去的日期几分钟后,我正在更新我的ans。很抱歉,我已经更新了我的答案,但只是想澄清一下,您列表中的日期是否为日期对象格式?或者是其他格式,比如字符串?