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