быстрый вопрос. Это одна из тех маленьких раздражающих ошибок. У меня Angular реактивная форма в лениво загруженном модуле регистрации. Структура кода выглядит следующим образом:
TS
get email() {
return this.myForm.get('email');
}
// This code works from within the component, but not when referenced from within the template.
HTML
<div class="errors" *ngIf="email.errors?.required && email.touched">Must enter email</div>
В шаблоне div никогда не отображается, поскольку выражение никогда не вычисляется как правда, даже при наличии ошибок. Я проверил в консоли.
Что более запутанно, так это то, что у меня нет проблем с использованием геттера из component.ts
, на самом деле, как я console.log
, пишу console.log(this.email.errors)
. И это прекрасно работает. Но не в шаблоне.
Мое грязное решение заключается в прямом доступе к ошибкам, и работает :
<div class="errors" *ngIf="myForm.controls.email.errors.required && myForm.controls.email.touched">
Must enter email
</div>
// This works! As you can see the expression is very long and messy.
Любая помощь приветствуется!