Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

154
Visualizações
¿Cómo generar HTML usando una plantilla literal con datos provenientes de un objeto literal en JavaScript?

Como dice el título, estoy tratando de generar dinámicamente mis botones HTML usando datos literales de objetos y usarlos para llenar el literal de la plantilla.

He estado intentando sin suerte y no puedo encontrar una respuesta sobre esto ...

Por favor, compruebe el código a continuación:

 const dockButtons = { 'list': [ { 'title': 'Search', 'icon': '<i class="bi bi-search"></i>', 'classes': 'dock-btn dock-btn-light', 'id': 'search-links-app-icon', 'attributes': 'type="button" accesskey="s"', 'onclick': '', 'access': '', }, { 'title': 'Notes & PDU Assist', 'icon': '<img class="dock-imgs" src="../assets/links-favicons/assist.svg">', 'classes': 'collapse dock-btn dock-btn-blue ms-2', 'id': 'notes-and-pdu-assist-app-icon', 'attributes': 'type="button"', 'onclick': 'closeMainCardsList();', 'access': '', }, ] }; const dockButtonsTemplate = `<button class="${classes} ${access}" id="${id}" onclick="${onclick}" ${attributes} title="${title}">${icon}</button>`; const generateDockButtons = dockButtons.list.map(dockButtonsTemplate); document.getElementById("dock-buttons-data").innerHTML = generateDockButtons.join("")
 <div id="dock-buttons-data"></div>

También me gustaría que fuera posible crear un condicional en la plantilla, donde si, por ejemplo, el valor del objeto onclick está en blanco, no lo cree en el literal de la plantilla.

Está funcionando (excepto la condición) si incluyo estas líneas:

 const dockButtonsTemplate = ({ title, icon, classes, id, attributes, onclick, access }) =>

Esto es algo que aprendí a usar recientemente, por lo que no puedo descifrar cómo eliminar el segundo fragmento anterior del tutorial del que lo obtuve. Me gustaría que busque directamente esos objetos si es posible.

También otra pregunta, ¿cuál es más rápido de cargar, si tengo, digamos, más de 3000 botones generados a partir de una plantilla O más de 3000 botones HTML codificados sin usar esta plantilla?

about 4 years ago · Juan Pablo Isaza
1 Respostas
Responde à pergunta

0

Puedes probar este código

 const btnList = dockButtons .lists; document.getElementById('dock-buttons-data').innerHTML = `${btnList.map((btn) => <button class="${btn.classes} ${btn.access}" id="${btn.id}" onclick="${btn.onclick}" ${btn.attributes} title="${btn.title}">${btn.icon}</button>)}`

O más de 3000 botones HTML codificados es más rápido que más de 3000 botones generados a partir de una plantilla

about 4 years ago · Juan Pablo Isaza Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda