с помощью выбора даты, как отключить диапазон дат в angular6? - PullRequest
0 голосов
/ 07 декабря 2018

Существует 2 объекта: один праздник другой микроплан holiday есть 2 поля.Один для даты начала и другой для даты окончания.В microplan есть только одно поле, дата начала микроплана.У меня вопрос: я просто хочу отключить дату в поле даты начала микроплана, которую я выбираю в holdiay эти даты не совпадают с датой начала микроплана.В моем случае даты не отключаются в календаре: Calendar]

microplan.html

<div class="form-group">
    <label class="form-control-label" for="field_microplanStartDate">Microplan Start Date</label>
    <div class="input-group">
        <input id="field_microplanStartDate" [disabled]="isHoliday" type="text" class="form-control" name="microplanStartDate" ngbDatepicker  #microplanStartDateDp="ngbDatepicker" [(ngModel)]="microplan.microplanStartDate"
        />
        <span class="input-group-append">
            <button type="button" class="btn btn-secondary" (click)="microplanStartDateDp.toggle()">
                <fa-icon [icon]="'calendar-alt'"></fa-icon>
            </button>
        </span>
    </div>
</div>

microplan.ts

private getIsHoliday(holidays) {
    for (let i = 0; i < holidays.length; i++) {
        const today = new Date();
        const date1 = new Date(holidays[i].startDate._i);
        const date2 = new Date(holidays[i].endDate._i);
        const day1 = date1.getFullYear() + '' + this.getIfLess(date1.getMonth()) + '' + this.getIfLess(date1.getDate());
        const day2 = date2.getFullYear() + '' + this.getIfLess(date2.getMonth()) + '' + this.getIfLess(date2.getDate());
        const todayDate = today.getFullYear() + '' + this.getIfLess(today.getMonth()) + '' + this.getIfLess(today.getDate());
        if (todayDate >= day1) {
            if (todayDate <= day2) {
                this.isHoliday = true;
            }
        }
    }
}


private getIfLess(date) {
    if (date <= 9) {
        return '0' + date;
    } else {
        return date;
    }
}

1 Ответ

0 голосов
/ 07 декабря 2018

Вы используете ngbDatepicker, как я видел в html-коде.У него есть функция отключения даты.Вы можете посмотреть эту ссылку .

// 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>
Это должно помочь вам, просто возьмите дату праздника, и как только пользователь вставит дату праздника, установите ее на дату микроплана.Это отключит автоматически.Надеюсь, это поможет.
...