Как подобрать изменения в поле ввода даты, обновленное в angular 8 (bs-datepicker)? - PullRequest
0 голосов
/ 09 октября 2019

Я пытаюсь настроить ввод end_date автоматически, чтобы он соответствовал start_date при выборе, используя bsDatepicker в угловых значениях.

html в myForm

<input #start_date type="text" (blur)="set_end_date(start_date.value)" formControlName="start_date"  bsDatepicker [bsValue]="bsValue"  [bsConfig]="bsConfig"  >
<input type="text" formControlName="end_date" bsDatepicker [bsValue]="bsValue" [bsConfig]="bsConfig"/>

component.ts

  set_end_date(val){
    this.myForm.patchValue({
      end_date: val
    })
  }

Кажется, что событие размытия не работаетправильно. Например, если я установил start_date 23 сентября 2019 года, он обновит дату окончания до пустой. И затем, если я изменяю начальную дату на 25 октября 2019 года, она устанавливает конечную дату на 23 сентября (в основном это была ранее установленная начальная дата). Это наводит меня на мысль, что существует некоторая задержка, которая не позволяет правильно установить start_date, когда вызывается событие (blur). Правильно ли мое понимание?

Я также попытался (изменить) событие, которое, кажется, не работает вообще (событие не обнаружено). Как мне решить это?

Ответы [ 2 ]

1 голос
/ 09 октября 2019

Вместо использования blur Попробуйте использовать событие bsValueChange, чтобы получить обновленную дату

<input #start_date type="text" (bsValueChange)="set_end_date($event)" formControlName="start_date"  bsDatepicker [bsValue]="bsValue"  [bsConfig]="bsConfig"  >

изменение демонстрационного значения

0 голосов
/ 09 октября 2019

Вы можете изменить триггер для chageDetection в вашем formControl:

new FormControl('', {updateOn: 'blur'});

Чем подписаться на changeEvent:

this.myForm.get('start_date').valueChanges.subcribe(...)

Для того, чтобы получить фактическое значение start_date:

this.myForm.patchValue({
  end_date: this.form.get('start_date').value
})
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...