Carlos Cifuentes
Referencia AngularJS → Angular

ng-switch en Angular moderno

ng-switch pasa a ser el bloque @switch, integrado en la sintaxis de templates. No necesita un elemento contenedor ni imports.

Antes · AngularJS
<div ng-switch="vm.order.status">
  <span ng-switch-when="pending">Pending</span>
  <span ng-switch-when="shipped">Shipped</span>
  <span ng-switch-default>Unknown</span>
</div>
Después · Angular
@switch (order().status) {
  @case ('pending') { <span>Pending</span> }
  @case ('shipped') { <span>Shipped</span> }
  @default { <span>Unknown</span> }
}

Qué cambia

  • ng-switch-when pasa a ser @case, y ng-switch-default pasa a ser @default.
  • @case compara con ===, y cada caso acepta cualquier expresión en vez de un atributo de texto.
  • No hay fallthrough: solo se renderiza el bloque que coincide y no hace falta break.

Consejo de migración. AngularJS comparaba los valores de ng-switch-when como strings, así que un estado numérico 1 coincidía con when='1'. @case usa igualdad estricta, así que revisa el tipo real del valor antes de convertir.

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