angular - Nu se poate lega ngModel.errors în condiția ngSwitchCase


Nu se poate lega ngModel.errors în condiția unui *ngSwitchCase. Dar dacă fac asta pe *ngIf, funcționează bine pentru mine.
Vreau să fac o structură pentru afișarea diferitelor erori în condiția unui *ngSwitchCase.
Sandbox StackBlitz

Am încercat diferite variații ale *ngSwitchCase="name.errors?.required", dar singura soluție care funcționează pentru mine este *ngIf="name2.errors?.required". Dar vreau să fac 4 sau mai multe condiții de eroare și cred că ar fi mai corect și mai ușor de citit să le fac în condiții *ngSwitchCase, dar după ce am început să învăț Angular, nu pot înțelege de ce această directivă nu funcționează. Mulțumesc anticipat pentru răspunsurile voastre

Răspuns #1

Poți folosi ngSwitch cu valoarea condiției ca true pentru a crea mai multe instrucțiuni if else ca mai jos!

Dacă cazul este adevărat, va fi afișat!

Deoarece minLength are un obiect precum { "minlength": { "requiredLength": 5, "actualLength": 4 } } atunci când eroarea este prezentă, putem folosi !!name.errors?.minlength pentru a converti valoarea într-un boolean și a afișa eroarea!

<div [ngSwitch]="true">
  <div class="error" *ngSwitchCase="name.errors?.required">The name is required</div>
  <div class="error" *ngSwitchCase="!!name.errors?.minlength">Minimum length of a name is 5!</div>
</div>

demonstrație stackblitz