Saltar al contenido

Acordeón plegable en angular

Si te encuentras con algo que te causa duda puedes dejarlo en los comentarios y te ayudaremos tan rápido como podamos.

Solución:

Mantenga su función en ngAfterViewInit en lugar de ngOnInit. Ver stackblitz actualizado

El problema es que en ngOnInit, la vista no está completamente pintada y no obtiene todos los elementos a los que desea vincular la función.

ngAfterViewInit() 
    var acc = document.getElementsByClassName("accordion");
    var i;

    for (i = 0; i < acc.length; i++) 
      acc[i].addEventListener("click", function () 
        this.classList.toggle("active");
        var panel = this.nextElementSibling;
        if (panel.style.maxHeight) 
          panel.style.maxHeight = null;
         else 
          panel.style.maxHeight = panel.scrollHeight + "px";
        
      );
    
  

usando angular hazlo como se muestra a continuación.

Mantenga una función de clic en el botón y vincule una propiedad isActive a la correspondiente array elemento. Luego muestre/oculte el acordeón en función de si isActive tiene valor true/false.

child.propertyName

toggleAccordian(event, index) var element = event.target; element.classList.toggle("active"); if(this.data[index].isActive) this.data[index].isActive = false; else this.data[index].isActive = true; var panel = element.nextElementSibling; if (panel.style.maxHeight) panel.style.maxHeight = null; else panel.style.maxHeight = panel.scrollHeight + "px";

valoraciones y reseñas

Puedes añadir valor a nuestro contenido informacional dando tu veteranía en las interpretaciones.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *