es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

personalizar contenido colapsar ng-zorro-antd

Quiero personalizar el colapso de contenidos pero no puedo simplemente colocar el contenido 1 en el colapso 1 y el contenido 2 en el colapso 2, y quiero crear un colapso y establecer los contenidos con el siguiente ejemplo. El proyecto es angular 12. Y no puedo encontrar la respuesta en el documento.

Y ¿cómo puedo implementar el evento click en el ítem 2 (colapso 2) para editar y eliminar?

collapse.component.ts

paneles = [
{
active: true,
name: “ítem 1 (colapso 1)”,
contents: [
{
key: “nombreArchivo”,
value: “list.jpg”
},
{
key: “tipo”,
value: “jpg”
},
{
key: “tamaño”,
value: “3mb”
}
],
disabled: false
},
{
active: true,
name: “ítem 2 (colapso 2)”,
contents: “me gusta este contenido solo en el colapso 2”,
disabled: false
}
];

collapse.component.html


{{data.key}}

{{data.value}}


Tags:  , , ,

Answer

  1. Avatar for davy.ai

    Para personalizar el contenido de cada panel desplegable, podemos modificar el array panels en el archivo collapse.component.ts.

    Por ejemplo, para tener diferentes contenidos para item 1 (colapso 1) e item 2 (colapso 2), podemos actualizar el array panels de la siguiente manera:

    panels = [
      {
        active: true,
        name: "item 1 (colapso 1)",
        contents: [
          {
            key: "nameFile",
            value: "list.jpg"
          },
          {
            key: "type",
            value: "jpg"
          },
          {
            key: "size",
            value: "3mb"
          }
        ],
        disabled: false
      },
      {
        active: true,
        name: "item 2 (colapso 2)",
        contents: [
          {
            key: "content2",
            value: "Me gusta este contenido solo en el colapso 2"
          }
        ],
        disabled: false
      }
    ];
    

    Luego, en el archivo collapse.component.html, podemos actualizar los bucles ngFor para mostrar el contenido de cada panel:

    <nz-collapse class="drawerProperty">
      <nz-collapse-panel *ngfor="let panel of panels" [nzheader]="panel.name" [nzactive]="panel.active" [nzdisabled]="panel.disabled">
        <div *ngfor="let data of panel.contents">
          <b>{{ data.key }}</b>
          <br>
          {{ data.value }}
        </div>
      </nz-collapse-panel>
    </nz-collapse>
    

    Para implementar los eventos “Editar” y “Eliminar” para item 2 (colapso 2), podemos agregar botones dentro de la plantilla nz-collapse-panel y vincular los eventos de clic a métodos en el componente:

    <nz-collapse-panel *ngfor="let panel of panels" [nzheader]="panel.name" [nzactive]="panel.active" [nzdisabled]="panel.disabled">
      <!-- Mostrar contenido para item 1 (colapso 1) y item 2 (colapso 2) -->
      <div *ngfor="let data of panel.contents">
        <b>{{ data.key }}</b>
        <br>
        {{ data.value }}
      </div>
    
      <!-- Agregar botones para editar y eliminar item 2 -->
      <div *ngif="panel.name === 'item 2 (colapso 2)'">
        <button nz-button="" nztype="primary" (click)="editItem2()">Editar</button>
        <button nz-button="" nztype="danger" (click)="deleteItem2()">Eliminar</button>
      </div>
    </nz-collapse-panel>
    

    Luego, en el archivo collapse.component.ts, podemos definir los métodos editItem2 y deleteItem2 para manejar los clics de los botones:

    editItem2() {
      console.log("Editar item 2");
      // Agregar lógica para abrir un modal de edición o navegar a la página de edición
    }
    
    deleteItem2() {
      console.log("Eliminar item 2");
      // Agregar lógica para mostrar un modal de confirmación de eliminación o eliminar el elemento de la lista
    }
    

    Nota que podemos reemplazar las declaraciones console.log con lógica real para manejar las operaciones de edición y eliminación.

Comments are closed.