Issue #2740💬 RespondidoAbierto el 27 de abril de 2020por GangkarooReacciones 1

Append no funciona de forma consistente

Respuesta rápidapor artf1

El componente de texto está compuesto por 'components', contenedor y 'content' (impreso después de components), así que cuando usas 'append' en realidad añade el nodo, pero lo ves arriba ya que el 'content' aparece abajo. Necesitamos el contenedor de 'componentes' por muchas razones (aunque en algunos casos ni siquier...

Lee la respuesta completa abajo ↓

Pregunta

¿Estás usando la última versión (las versiones antiguas NO están soportadas)? Sí ¿Te enfrentas al error con tu copia local de GrapesJS o con la demo actual? Demo local y actual

Estoy usando 'editor.getSelected().append()' para añadir texto al componente seleccionado actualmente en el editor. Esto parece funcionar de forma consistente al mirar el código HTML en el editor de código, sin embargo, en la vista el texto no siempre se añade, sino que, en la mayoría de los casos, aparece como prependido. Sin embargo, tras actualizar la página, el texto se muestra como se ha añadido al final del componente. Probado en la versión actual de Firefox y Chrome.

Esto es lo que introduje en las herramientas de desarrollo y el resultado a la izquierda. El marco rojo marca los dos casos en los que la vista muestra el texto como prependido (el mensaje de error en la consola no tiene nada que ver con este ticket, apareció después de hacer las pruebas).

! añade

La misma página en el editor de código

! código html

Supongo que este no es el comportamiento deseado de añadir o ¿tengo que actualizar la vista de alguna manera después de añadir el texto?

¡Gracias por tu ayuda, aprecio tu trabajo!

Respuestas (1)

artf20 de mayo de 2020

El componente de texto está compuesto por 'components', contenedor y 'content' (impreso después de components), así que cuando usas 'append' en realidad añade el nodo, pero lo ves arriba ya que el 'content' aparece abajo. Necesitamos el contenedor de 'componentes' por muchas razones (aunque en algunos casos ni siquiera se use). Técnicamente no puedes eliminar otros componentes dentro de un Texto (usando el editor), así que creo que la solución debería ser extender el método de 'anexar' (en el modelo de Texto) y evitar añadirlo por completo porque sería incorrecto por definición (o quizá comprobar la propiedad 'droppable' en el modelo principal de Componentes). Sinceramente, no lo veo como un problema real, más bien como un uso incorrecto de la API en el componente de texto, pero estaría encantado de fusionar una PR

Preguntas y respuestas relacionadas

Continúa investigando con debates sobre temas similares.

Plugins de pago que cumplen con este problema

Seleccionado por temas clave y relevancia de etiquetas para ayudarte a enviar más rápido.

Ver todos los plugins

Cargando recomendaciones de plugins de pago...

Opción gratuita

Consulta los plugins de código abierto de GrapesJS en GitHub O haz una búsqueda rápida en nuestro catálogo gratuito.

Explora plugins gratuitos →
Opción premium

Los plugins premium incluyen soporte, actualizaciones regulares y funciones listas para producción — ahorrando días de trabajo de integración.

Explora plugins premium →

Explorar categorías de plugins

Ve directamente a las páginas de categorías de plugins en el marketplace.