ngMessages en Angular moderno
En Angular no existe un paquete ngMessages. Los mensajes de error son control de flujo común que lee los errores de un control de formulario.
Antes · AngularJS
<input name="email" type="email" ng-model="vm.email" required>
<div ng-messages="f.email.$error" ng-if="f.email.$touched">
<p ng-message="required">Email is required</p>
<p ng-message="email">Invalid email</p>
</div>Después · Angular<input formControlName="email" type="email" />
@if (email.touched && email.invalid) {
<div class="errors">
@if (email.hasError('required')) {
<p>Email is required</p>
} @else if (email.hasError('email')) {
<p>Invalid email</p>
}
</div>
}
// component
get email() { return this.form.controls.email; }Qué cambia
- ng-messages sobre $error pasa a ser bloques @if que llaman a hasError() en el control.
- Una cadena @if / @else if muestra un mensaje a la vez, como ng-messages por defecto; bloques @if separados se comportan como ng-messages-multiple.
- ng-messages-include pasa a ser un componente compartido pequeño que recibe un control y muestra sus errores.
Consejo de migración. Los objetos de error de Angular traen detalles: minlength entrega requiredLength y actualLength. Úsalos para armar el mensaje en vez de repetir el número en el template.
Relacionado
¿Planeas una migración o una plataforma de microfrontends?
En una llamada de 20 minutos me cuentas tu situación y te digo cómo la abordaría. Si todavía no vale la pena, también te lo digo.
Escríbeme por LinkedIn