Проверка ошибки передачи для формы, управляемой динамическим шаблоном — Angular

#html #angular #forms

#HTML #angular #формы

Вопрос:

Я попытался прикрепить передачу ошибок для динамической формы. Вот демонстрационный код

Я могу получить поведение, но я получаю

ExpressionChangedAfterItHasBeenCheckedError: выражение изменилось после проверки. Предыдущее значение: ‘null’. Текущее значение: ‘true’

Как изящно справиться с этой проблемой. Есть ли другой лучший способ сделать это?

Комментарии:

1. @Vega: Конечно, подойдет 🙂

Ответ №1:

Angular автоматически добавит класс ng-invalid, когда форма находится в недопустимом состоянии. вы можете использовать это для стилизации элемента вместо использования ngClass.

component.css

 .ng-invalid:not(form)  {
  border-left: 5px solid #a94442; /* red */
}
  

Разветвленный рабочий пример

Ответ №2:

Может быть, вы можете сделать что-то вроде этого:

 <input
      type="number"
      [class.error]="!data.val"
      step="any"
      #valBox="ngModel"
      required
      (ngModelChange)="changedInput($event)"
      [(ngModel)]="data.val"
/>