Carlos Cifuentes
Referencia AngularJS → Angular

ng-if / ng-show / ng-hide en Angular moderno

ng-if pasa a ser el bloque @if, con @else incluido. ng-show y ng-hide pasan a ser un binding al atributo nativo hidden o a una clase.

Antes · AngularJS
<div ng-if="vm.isAdmin">Admin panel</div>
<div ng-if="!vm.isAdmin">No access</div>
<p ng-show="vm.loading">Loading…</p>
Después · Angular
@if (isAdmin()) {
  <div>Admin panel</div>
} @else {
  <div>No access</div>
}
<p [hidden]="!loading()">Loading…</p>

Qué cambia

  • @if quita el elemento del DOM, igual que ng-if.
  • @else y @else if reemplazan los pares de ng-if con condiciones opuestas.
  • [hidden] mantiene el elemento en el DOM, igual que ng-show.

Consejo de migración. Revisa tu CSS: una regla display en el elemento anula el atributo hidden. Usa un binding de clase cuando el elemento tiene su propio display.

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