В моем проекте Angular есть компонент, который показывает график до определенной даты, выбранной пользователем. Значение во введенной дате должно быть действительной датой. Таким образом, при нажатии кнопки x на панели выбора даты она должна перейти к текущей дате и не быть пустой.
Это HTML-код:
<input class="form-control input-sm" type="date" name="endDate"
[ngModel]="endDate | date:'yyyy-MM-dd'" (ngModelChange)="setEndDate($event);">
и следующий код в компоненте. Файл TS:
endDate = new Date();
setEndDate(newValue) {
if(newValue) {
this.endDate = newValue;
return;
}
this.endDate = new Date();
}
Я не могу понять, что иногда это работает, а иногда нет. В частности, когда дата в средстве выбора не является текущей датой, нажатие на x приводит к тому, что она становится текущей датой, как и предполагалось. Если в средстве выбора указана текущая дата, она становится пустой и отображает mm/dd/yyyy
. Он должен просто оставаться на текущей дате.
Из тестирования видно, что значение устанавливается, но сборщик по какой-то причине не обновляется. Я пытался изменить привязку, но это только привело к ее полной поломке. Любой, который можно пролить на то, почему это работает иногда, но не в других случаях, будет оценен.
stackblitz: https://stackblitz.com/edit/angular-oep55t