Issue #441💬 RespondidoAbierto el 20 de octubre de 2017por santiphReacciones 0

Ignorar/evitar changeCount

Respuesta rápidapor artf

Hola @santiph bueno, si el problema es 'onbeforeunload' puedes desactivarlo con 'noticeOnUnload' '''js grapesjs.init({ ... avisoOnUnload: falso }) ```

Lee la respuesta completa abajo ↓

Pregunta

Debido a https://github.com/artf/grapesjs/issues/436, no puedo confiar en el método de carga remota de StorageManager para cargar una plantilla desde un endpoint REST, así que recurro a alternativas como 'editor.setComponents()' y 'editor.setStyle()' (que se usan dentro de un comando, así que 'grapesjs' y 'editor' están disponibles).

Desafortunadamente, esos métodos hacen que 'changesCount' aumente y activen el evento 'onbeforeunload' cuando nuestros usuarios intentan salir de la página web. Además, incluir frases como 'editor.editor.set('changesCount', 0)' en el comando es inútil, ya que changesCount se incrementa tan pronto como termina el comando (incluso después de completar run() y stop() execution).

¿Hay alguna forma de solucionar este problema? ¿O alguna forma de sobrescribir changesCount justo después de usar .setComponents()/.setStyles()?

Gracias. PD: En cuanto a https://github.com/artf/grapesjs/issues/436, trabajaré en una propuesta de refactorización para la biblioteca Fetch para que cumpla con REST. Espero poder apurarlo en algún momento de la semana que viene

Respuestas (3)

artf23 de octubre de 2017

Hola @santiph bueno, si el problema es 'onbeforeunload' puedes desactivarlo con 'noticeOnUnload' '''js grapesjs.init({ ... avisoOnUnload: falso })

santiph23 de octubre de 2017

Hola @artf Necesito avisar al usuario de forma constante sobre cualquier cambio no guardado. Y sáltala cuando no haya nada nuevo que guardar: Cuando se crea una plantilla vacía nueva, justo después de guardar o después de cargar una plantilla, no debería aparecer ningún mensaje de confirmación.

Guardar el escenario a través de StorageManager funciona como se esperaba. La carga no, por desgracia. Al menos no cuando componentes, estilos, html, etc., se cargan a través de la API del editor, no del .load() de StorageManager.

santiph24 de octubre de 2017

Podría probarlo completamente con almacenamiento remoto: 'onbeforeunload' está desactivado, como era de esperar, al cerrar justo después de guardar. Desafortunadamente, todavía se muestra al cerrar justo después de cargar una nueva plantilla.

Después de un poco de depuración, cargar una nueva plantilla parece aumentar 'changesCount' a 1. (Carga 'changesCount' = 1. Carga 'changesCount' = 2. Carga 'changesCount' = 3.) ¿Cómo podría reiniciarse este contador si la razón del cambio de plantilla era cargar uno nuevo?

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 →

Tutoriales relacionados

Guías detalladas sobre el mismo tema.

Todos los tutoriales →

Explorar categorías de plugins

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