Solucionado (ver solución)
Solucionado
(ver solución)
1
respuesta

Problemas con el backtick

Buenas tardes!!! Tengo un problema al momento de colocar el id="${id}", dentro del código HTML de "contenido". Como si no me lo reconociera. En la página salta error y se me borra la lista de clientes. He buscado info al respecto pero no he encontrado ninguna solución. Les comparto captura de pantalla.

Ingrese aquí la descripción de esta imagen para ayudar con la accesibilidadAqui les dejo el código:

Del archivo client-controller.js

import { clientServices } from "../service/client-service.js"
console.log(clientServices);
/*********** interacción entre JavaScript y el HTML****************/

// Nuestra tabla que se está llenando a través de la información que nos está regresando nuestro back end o nuestra API que se encuentran en localhost:3000.
const crearNuevaLinea = (nombre, email) => {
    const linea = document.createElement("tr");
    const contenido =
        `<td class="td" data-td>${nombre}</td>
         <td>${email}</td>
         <td>
            <ul class="table__button-control">
                <li>
                    <a href="../screens/editar_cliente.html" class="simple-button simple-button--edit">
                    Editar
                    </a>
                </li>
                <li>
                    <button class="simple-button simple-button--delete" type="button" id="${id}">
                        Eliminar
                    </button>
                </li>
            </ul>
         </td>`;
    linea.innerHTML = contenido;
    const btn = linea.querySelector("button");
    btn.addEventListener("click", () => {
        const id = btn.id;
        console.log("Hiciste click", id)
    })
    return linea;
};

const table = document.querySelector("[data-table]");

clientServices.listaClientes().then((data) => {
    data.forEach(({ nombre, email, id }) => {
        const nuevaLinea = crearNuevaLinea(nombre, email, id);
        table.appendChild(nuevaLinea);
    });
}).catch((error) => alert("Ha ocurrido un error"));

Del archivo client-service.js:

const listaClientes = () => fetch("http://localhost:3000/perfil").then((respuesta) => respuesta.json());

const crearCliente = (nombre, email) => {
    return fetch("http://localhost:3000/perfil", {
        method: "POST",
        headers: {
            "Content-Type": "application/json"
        },
        body: JSON.stringify({ nombre, email, id: uuid.v4() }),
    });
};

export const clientServices = {
    listaClientes,
    crearCliente,
};

Me pueden ayudar?? Desde ya, muchas gracias!

1 respuesta
solución!

Al intentar avanzar en el curso, en borrando cliente, me ocurre lo mismo...al usar el backtick ${id} en eliminarCliente. Si accedo al http://localhost:3000/perfil de crearCliente, no tengo problemas pero al intentar acceder a http://localhost:3000/perfil/${id} de eliminarCliente, me aparece vacío. Ingrese aquí la descripción de esta imagen para ayudar con la accesibilidad