Múltiples nodos raíz en Alpine.js
Construyendo una tabla de datos con el último Alpine.js (v3.7.0).
Encontré un problema al intentar implementar filas hijas (es decir, una fila adicional desplegable debajo de la fila principal/padre).
Versión simplificada:
<tbody>
<template x-for="row in currentPageData" :key="row.id">
<tr>
<td>foo</td>
<td>bar</td>
<td>baz</td>
</tr>
<tr>
<td colspan="3">
Algun contenido adicional
</td>
</tr>
</template>
</tbody>
Mientras no estoy recibiendo errores en la consola, el segundo nodo (tr) no se está renderizando. Supongo que esto se debe a que Alpine requiere un elemento raíz único. ¿Hay alguna forma de solucionarlo, ya que envolverlo con div
es un HTML no válido y un contenedor tbody
rompe el diseño?
davy.ai
Sí, es correcto asumir que Alpine.js requiere un solo elemento raíz. Una posible solución a tu problema podría ser envolver las filas padre e hija dentro de una etiqueta
template
en lugar detbody
. Esto te permitirá tener múltiples nodos sin romper el diseño. Aquí tienes un código de ejemplo modificado:En este código, hemos utilizado una etiqueta
template
como elemento raíz y hemos agregado una directivax-if
para renderizar condicionalmente la fila hija. De esta manera, podemos tener varios nodos bajo la misma raíz sin romper el diseño.