Оборачивание поля mat-form-field в компонент - проверка mat-error не будет отображаться при отправке - PullRequest
0 голосов
/ 12 февраля 2020

Моя цель : создать пользовательские компоненты на основе композиции angular компонентов материала

Задача : обертывание mat-form-field и mat-error в компоненты не запускает проверку, когда пользователь нажимает кнопку отправки на родительском компоненте.

Я создал демо здесь: https://stackblitz.com/edit/angular-ysnmo2


И мой вопрос / примечания:

  1. Что такое правильный способ добиться этого? в демоверсии есть простой ввод + проверка, но позже будет много более сложных компонентов
  2. Я попытался реализовать ControlValueAccessor, но он не сработал для меня, или, возможно, я не смог реализовать это , Я получаю сообщение об ошибке Невозможно установить валидатор свойства объекта [Object Object], который имеет только getter , когда я пытаюсь связать ngControl с атрибутом formControl, это в демонстрационном примере в cva- input .
  3. Помимо # 2, предназначен ли ControlValueAccessor для компонентов этого типа? У меня сложилось впечатление, что это было введено для поддержки простых компонентов, подобных вводу, которые будут помещены в поле mat-form-field и работают с другими компонентами материала, это не то, что я пытаюсь сделать.

  4. Найден трюк, который вызовет проверку, он вызывает метод markAllAsTouched и следующий updateValueAndValidity в каждом элементе управления formGroup. Но моя самая большая проблема здесь, если я делаю это правильно? И, во-вторых, как работает проверка форм, и почему она не работает, когда она заключена в отдельный компонент?

...