Если эта ошибка исходит от HTML, это потому, что ваше условие *ngIf
пытается прочитать значение из неопределенного объекта.
В тот момент, когда представление визуализируется и проверяется, вполне возможно, что f
(кстати, вам следует изменить это имя переменной на более описательное, но ??♂️), пока не было заполнено ни одной ошибки , поэтому будет неопределенным.
Вы можете сделать одну из двух вещей здесь, либо вы можете обернуть все это в другую *ngIf
, чтобы гарантировать, что error_code
часть f
заполнена перед доступом к ней:
<span *ngIf="f && f.error_code">
<span *ngIf="f.error_code.errors.required" class="error-msg">This is required field.</span>
</span>
Или вы можете воспользоваться оператором безопасной навигации:
<span *ngIf="f?.error_code?.errors?.required" class="error-msg">This is required field.</span>
Обратите внимание на ?
после каждого ключа объекта. Это выручает, когда оно достигает первого нулевого значения, но приложение продолжает работать, поскольку оно терпит неудачу изящно.
Подробнее об этом можно прочитать здесь: https://angular.io/guide/template-syntax#the-safe-navigation-operator----and-null-property-paths