Изменение времени окончания программы программно - PullRequest
0 голосов
/ 20 марта 2019

Я хочу изменить минимальную дату во время выполнения.

    <input class="form-control" id="endDateTime" [owlDateTime]="endDateTime" [owlDateTimeTrigger]="endDateTime"
                  [min]='endDateTimePickerConfig.min' placeholder="End Date Time" formControlName="endDateTime">
                <owl-date-time #endDateTime [firstDayOfWeek]='endDateTimePickerConfig.firstDayOfWeek'
                  [hour12Timer]='endDateTimePickerConfig.hour12Timer'></owl-date-time>

  public startDateTimePickerConfig = {
    min: new Date(),
    firstDayOfWeek: 1,
    hour12Timer: true
  };

  public endDateTimePickerConfig = Object.assign({}, this.startDateTimePickerConfig);;

    constructor() {
          this.initializeEndDate(this.startDateTimePickerConfig.min);
        }

      private initializeEndDate(startDateTime: Date): void {
        this.endDateTimePickerConfig.min = this.incrementMinutes(this.endDateTimePickerConfig.min, 1);
      }

    private incrementMinutes(date: Date, minutes: number): Date {
        return new Date(date.getFullYear(),
          date.getMonth(),
          date.getDate(),
          date.getHours(),
          date.getMinutes() + minutes,
          date.getSeconds(),
          date.getMilliseconds());
      }

Однако, когда минимальная дата в машинописном тексте изменяется, пользовательский интерфейс обновляет только поле выбора https://i.stack.imgur.com/5MvME.png,, но после нажатия кнопки set ввод заполнится старыми минутами. https://i.stack.imgur.com/imhja.png Это странное поведение. Какие-либо предложения? PS: https://www.npmjs.com/package/ng-pick-datetime

1 Ответ

0 голосов
/ 20 марта 2019

Полагаю, проблема в том, что вы изменяете значение атрибута объекта (this.endDateTimePickerConfig.min).Попробуйте создать новый атрибут 'plain' и установить для него свойство [min].

Пример:

.ts
minEndDateTimePickerConfig: Number;
...
private initializeEndDate(startDateTime: Date): void {
   this.minEndDateTimePickerConfig = this.incrementMinutes(this.minEndDateTimePickerConfig, 1);
}

.html
[min]='minEndDateTimePickerConfig'
...