Nano Hash - криптовалюты, майнинг, программирование

Дата выбора даты для углового материала автоматически при отпускании фокуса

Я использую Angular material datepicker, у меня возникла проблема при вводе одной или нескольких цифр в поле ввода, а затем при выходе из фокуса или щелчке за пределами даты выбора даты автоматически.

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

Может ли кто-нибудь помочь решить эту проблему?

ссылка на stackblitz

angular-material-datepicker


Ответы:


1

Как насчет использования поддельного ввода поля для ввода текста и скрытия поля datepicker / form под ним, чтобы средство выбора даты открывалось в нужном месте (оно откроет поле ниже, в котором есть [matDatepicker]).

Вы должны прослушивать событие размытия в поле ввода дисплея и очищать значение поля формы, если оно недопустимо. Основная проблема в том, что новая дата (число) является действительной датой. Средство выбора даты преобразует введенные вами данные в дату и выдаст их как новое значение поля. Пользовательская логика может выполняться в событии размытия, возможно, с помощью moment.js для Проверить если строка является значением даты.

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

Также значение поля отображения должно обновляться, когда дата выбирается с помощью datepicker или для отображения начальных значений.

<mat-form-field [formGroup]="dateFormGroup">
  <input matInput (blur)="onBlurEvent($event)" placeholder="Choose a date">
  <input type="hidden" formControlName="date" [matDatepicker]="picker">
  <mat-datepicker-toggle matSuffix [for]="picker"></mat-datepicker-toggle>
  <mat-datepicker #picker></mat-datepicker>
</mat-form-field>

Эта логика должна быть заключена в настраиваемый элемент управления формой или, по крайней мере, в специальный компонент, потому что он модульный и его размещение в нескольких местах вызовет множество ошибок.

25.09.2019
  • Спасибо @RandomCode. Попытаюсь 25.09.2019
  • Новые материалы

    Кластеризация: более глубокий взгляд
    Кластеризация — это метод обучения без учителя, в котором мы пытаемся найти группы в наборе данных на основе некоторых известных или неизвестных свойств, которые могут существовать. Независимо от..

    Как написать эффективное резюме
    Предложения по дизайну и макету, чтобы представить себя профессионально Вам не позвонили на собеседование после того, как вы несколько раз подали заявку на работу своей мечты? У вас может..

    Частный метод Python: улучшение инкапсуляции и безопасности
    Введение Python — универсальный и мощный язык программирования, известный своей простотой и удобством использования. Одной из ключевых особенностей, отличающих Python от других языков, является..

    Как я автоматизирую тестирование с помощью Jest
    Шутка для победы, когда дело касается автоматизации тестирования Одной очень важной частью разработки программного обеспечения является автоматизация тестирования, поскольку она создает..

    Работа с векторными символическими архитектурами, часть 4 (искусственный интеллект)
    Hyperseed: неконтролируемое обучение с векторными символическими архитектурами (arXiv) Автор: Евгений Осипов , Сачин Кахавала , Диланта Хапутантри , Тимал Кемпития , Дасвин Де Сильва ,..

    Понимание расстояния Вассерштейна: мощная метрика в машинном обучении
    В обширной области машинного обучения часто возникает необходимость сравнивать и измерять различия между распределениями вероятностей. Традиционные метрики расстояния, такие как евклидово..

    Обеспечение масштабируемости LLM: облачный анализ с помощью AWS Fargate и Copilot
    В динамичной области искусственного интеллекта все большее распространение получают модели больших языков (LLM). Они жизненно важны для различных приложений, таких как интеллектуальные..