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

128
Vistas
cómo renderizar plantillas de elementos vis.js personalizadas usando vue 3

Problema: los documentos de Visjs muestran ejemplos de cómo usar plantillas de reacción en visjs para artículos personalizados pero no para vue.

Solución: necesitamos usar las funciones de renderizado de vue para renderizar la plantilla mientras le pasamos accesorios al elemento secundario y emitimos eventos al elemento principal.

Resolví el problema donde groupTemplate no quería cargar. (respuesta actualizada)

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

0

Entonces, hacer que la función de procesamiento sea asíncrona parece resolverlo: D Dejaré esto aquí para futuras personas. Luchó todo el día tratando de hacer que la plantilla de grupo funcionara. Hubiera pensado que defineAsyncComponent lo resolvería, pero no se movió del todo, parece que la carga asincrónica de la función de procesamiento funciona.

 import { render, h } from 'vue'; const itemTemplate = async (item, element) => render(h(bar, { onDelete: (ev) => { items.remove(item.id) }, item, }), element ) const groupTemplate = async (group, element) => render(h(groupbar, { onHide: () => { groups.update(group.id, { hidden: true }) }, group, }), element ) const options = ref({ template: (item, element) => { if (!item) return; return itemTemplate(item, element); }, groupTemplate: (group, element) => { if (!group) return; return groupTemplate(group, element); } })

modelo

 <template> <div class="group-container"> <button @click="emits('hide', group.id)">hide</button> {{ group.content }} </div> </template> <script setup> import { watch } from 'vue'; const emits = defineEmits(['hide']); const props = defineProps({ group: { type: Object } }) </script> <style> .group-container { background: red; } </style>
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