Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

188
Vistas
Usando una cadena hmtl completa como plantilla que contiene css y js

Obtengo de mi API una página HTML completa como una cadena, que contiene css (tanto en línea como en el encabezado) y javascript, con este aspecto:

 <script></script> <style></style> <div></div> . . . </html>

No hay archivos externos, solo una página HTML completa.

Traté de configurar document.innerHtml a través de una función para el contenido de la cadena, HTML funciona más o menos en este caso, pero las partes del script son obvias. ignorado

También intenté configurar la plantilla de un componente en la cadena, pero luego recibo muchos errores, por ejemplo, carácter inesperado "EOF" (¿Tiene un "{" sin escape en su plantilla? Use "{{ '{' }}") para escapar de él.) (debido al contenido de js que espero) y una gran cantidad de etiquetas de cierre inesperadas "span". Puede ocurrir cuando la etiqueta ya ha sido cerrada por otra etiqueta. (lea sobre este, solo quiero que angular no toque mi cuerda)

En otro intento, acabo de crear una plantilla con un div, que luego se llena con la cadena. No funcionó debido al saneamiento, después de agregar un bypassSecurityTrustHtml, funcionó, pero el css está completamente desordenado y todo js simplemente se eliminó.

Sé que no es la forma angular de trabajar, pero tenemos un software en ejecución que debe migrarse a angular y las páginas son generadas por un motor python, por lo que no tengo una forma real de cambiar la cadena antes de obtener desde la API. Si hubiera una manera de leer las partes, css, scripts fuera de la cadena y de alguna manera pasarlos por separado a la página, también estaría contento (siempre y cuando no cueste mucho rendimiento)

over 4 years ago · Santiago Trujillo
1 Respuestas
Responde la pregunta

0

Dividiría el problema en dos secciones, agregaría html y css y luego agregaría javascript.

  • Primero, cargue el script.

Como se indicó, está recibiendo todo el contenido tiene una cadena. Como sabe que el javascript estará entre las etiquetas <script>...</script> , puede obtenerlo usando expresiones regulares u otras formas. Una vez que tenga la URL del script, puede cargarla siguiendo este stackoverflow u otros.

Hay varias formas de agregar scripts que se pueden usar en Angular, y stackoverflow contiene muchos de ellos.

  • En segundo lugar, cree el elemento DOM a partir de la cadena HTML y CSS

De manera similar al anterior, puede extraer el código HTML y CSS. Una vez hecho esto, puede usar DOMParser Api para convertir su cadena en un elemento DOM adecuado.

  • Tercero, use Renderer2 para agregar el elemento DOM creado

Angular permite la manipulación de elementos DOM de una aplicación de forma segura. Esto se hace con la API de Renderer2 . En particular, el método appendChild le permite agregar un elemento DOM a cualquier otro elemento DOM que desee. Puede usar esta API para agregar el contenido que recibió.

over 4 years ago · Santiago Trujillo Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda