Отображение, редактирование и проверка данных, отличных от записи / чтения из модели с использованием Reactive Forms - PullRequest
0 голосов
/ 06 мая 2019

Моя настройка

У меня есть value из БД как number. Это значение должно всегда быть числом, за исключением цели его отображения в input -элементе и проверки правильности ввода . Только в этих случаях число должно быть HEX значением .

Вот что должно произойти:

  1. value: 200 исходит от службы.
  2. ?value=200 используется в маршрутизаторе в качестве параметра.
  3. value: 'c8' отображается в input[type=text] на виде.
  4. пользователь изменяет это значение на fa
  5. этот валидатор должен (если возможно) проверить fa, чтобы проверить, является ли оно действительным выражением HEX .
  6. если это так, то value = hex2Number('fa') должно привести к value: 250 в модели, , тогда как fa должен по-прежнему находиться в input -элементе для редактирования.
  7. value: 250 следует снова использовать afterwarts в маршрутизаторе и возвращаться на сервер.

Точно такой же вариант использования применяется, например, для минуты: секунды редактируются и секунды сохраняются в БД.

Мне не нужна помощь с hex2Number() -методом; -)

Мой вопрос (ы)

  1. возможно ли это с помощью Реактивных форм ?
  2. ... или вместо этого мне нужно переключиться на управляемые шаблоном формы?
  3. Есть ли лучшая практика для использования различных данных в графическом интерфейсе и модели за ней?

Заранее спасибо!

1 Ответ

1 голос
/ 06 мая 2019

1) Да, это возможно.Для этого создайте пользовательский ControlValueAccessor.

2) Он совместим как с формами Reactive, так и с формами, управляемыми шаблонами.

3) ControlValueAccessor - лучшая практика.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...