Я пытаюсь использовать библиотеку ngx-bootstrap для создания полного выбора диапазона даты и времени, используя Inline Datepicker и Timepicker .Цель состоит в том, чтобы добиться чего-то похожего на это:
Чтобы заставить этот компонент работать, я буду использовать два экземпляра Inline Datepicker , один длямладшая дата и другие для старшей даты.Всякий раз, когда в нижнем средстве выбора даты выбирается дата, эта дата должна быть установлена как minDate старшего средства выбора даты, и наоборот.
Проблема заключается в том, что всякий раз, когда свойство minDate изменяется, новое включается / отключаетсядаты в улучшенном средстве выбора не обновляются до тех пор, пока мышь не наведет курсор на какую-либо ранее активированную дату .
Код для воспроизведения этого действительно прост, его можно найти в this StackBlitz .У нас есть средство выбора даты и несколько кнопок, которые увеличивают или уменьшают свойства minDate или maxDate, используемые средством выбора даты:
HTML:
<bs-datepicker-inline
[bsValue]="today"
[minDate]="minDate"
[maxDate]="maxDate"
(bsValueChange)="onDateChange($event)">
</bs-datepicker-inline>
<button (click)="onClick('min+')">minDate +</button>
<button (click)="onClick('min-')">minDate -</button>
<button (click)="onClick('max+')">maxDate +</button>
<button (click)="onClick('max-')">maxDate -</button>
Компонент:
today: Date;
minDate: Date;
maxDate: Date;
constructor() {
this.today = new Date();
this.minDate = new Date();
this.maxDate = new Date();
this.minDate.setDate(this.minDate.getDate() - 1);
this.maxDate.setDate(this.maxDate.getDate() + 1);
}
onClick(command: string) {
switch (command) {
case 'min+':
this.minDate.setDate(this.minDate.getDate() + 1);
break;
case 'min-':
this.minDate.setDate(this.minDate.getDate() - 1);
break;
case 'max+':
this.maxDate.setDate(this.maxDate.getDate() + 1);
break;
case 'max-':
this.maxDate.setDate(this.maxDate.getDate() - 1);
break;
}
}
Есть ли возможность запустить это представление программно?
Ссылка StackBlitz: https://stackblitz.com/edit/angular-fk9pfe