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

175
Vistas
Cómo envolver HTML dinámico de la base de datos alrededor de la plantilla Vue.js

Necesito poder envolver HTML personalizado alrededor del contenido de mi plantilla de Vue. Como puede ver a continuación, no se trata simplemente de insertar contenido html usando <div v-html="HtmlWrapperTopHalf"> porque eso cerrará automáticamente cualquier etiqueta no cerrada. Las etiquetas siempre estarán cerradas en la mitad inferior del HTML dinámico. Básicamente, estoy buscando insertar el código de plantilla de Vue en mi HTML de plantilla dinámica.

Tampoco puedo asumir lo que hay en el HTML dinámico y construirlo dentro de la plantilla de Vue. Este HTML proviene de un editor de texto enriquecido que mis clientes crean por su cuenta. Simplemente insertan un marcador de posición {{MAIN_CONTENT}} en el medio de su plantilla dinámica y ahí es donde debería aparecer la funcionalidad de la plantilla Vue.

Página.vue

 <template> <div> //Top half of dynamic XHTML wrapper goes here <p>Inner Content Here</p> <ComponentA /> <ComponentB /> <!-- etc. ---> <p>More Inner Content</p> //Bottom half of dynamic XHTML wrapper goes here </div> </template> <script> axios.get("getHtmlContent").then((result) =>{ console.log("top", result.data.HtmlWrapperTopHalf) console.log("bottom", result.data.HtmlWrapperBottomHalf) }); </script>

consola.log

 top: <div class="my-dynamic-class" id="my-unique-id"><h1>DYNAMIC TITLE</h1> bottom: <div id="my-dynamic-footer">custom footer text</div></div>

Salida HTML:

 <div> <div class="my-dynamic-class" id="my-unique-id"><h1>DYNAMIC TITLE</h1> <p>Inner Content Here<p> <div>Hello from ComponentA!!</div> <div>Hello from ComponentB!!</div> <!-- etc. ---> <p>More Inner Content<p> <div id="my-dynamic-footer">custom footer text</div></div> </div>

Esperemos que este diagrama del concepto ayude: ingrese la descripción de la imagen aquí

about 4 years ago · Juan Pablo Isaza
1 Respuestas
Responde la pregunta

0

Dado que otros componentes pueden ser parte de este contenido html dividido, usar la sintaxis de render para generar un espacio dentro del contenido parece ser la única alternativa.

 render(createElement) { return createElement( 'div', { 'class': 'hello'}, this.$slots.default ) },

Haga que su componente axios se construya dentro del renderizado ( consulte los documentos ) y luego utilícelo como una slot para completar los componentes futuros.

Por ejemplo <ClientHtmlInject> <Comp1/><Comp2/> </ClientHtmlInjection>

about 4 years ago · Juan Pablo Isaza 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