Cómo desactivar el botón de deshacer
En eventos de 'deshacer'/'rehacer' https://grapesjs.com/docs/api/editor.html#general puedes usar las APIs de Undo Manager https://grapesjs.com/docs/api/undo_manager.html
Lee la respuesta completa abajo ↓Pregunta
Hola @artf,
Espero que te vaya bien con uvas.
¿Podrías decirnos cómo desactivar el botón de deshacer cuando no hay datos en el administrador de deshacer y viceversa? He revisado todos los eventos nuevos pero no he encontrado el evento de deshacer activo/desactivado. ¿Puedes ayudarnos?
Gracias de antemano
Respuestas (3)
En eventos de 'deshacer'/'rehacer' https://grapesjs.com/docs/api/editor.html#general puedes usar las APIs de Undo Manager https://grapesjs.com/docs/api/undo_manager.html
@artf Si el evento de deshacer necesita activarse para presentar sus datos, ¿cómo podemos renderizar o desactivar los btns de deshacer/rehacer? De serie, los botones Deshacer/Rehacer borrarán toda una plantilla si el evento de deshacer/rehacer no ha rastreado nada. Estoy intentando renderizar condicionalmente los botones de deshacer/rehacer basándome en que haya algo que pueda deshacer o rehacer. Estoy teniendo problemas con el evento general "Actualización". El evento de Actualización nunca parece activarse. ¿Puedes dar un poco más de contexto?
this.editor.on('update', () => {
const pnm = this.editor.Panels;
const um = this.editor.UndoManager;
const optsPanel = pnm.getPanel('options');
si (um.hasUndo().length > 0) {
optsPanel.get('buttons').add({
id: 'deshacer',
claseNombre: 'fa fa-undo',
Orden: 'Deshacer',
atributos: { título: 'deshacer' },
});
}
});
Si el evento de deshacer necesita activarse para presentar sus datos, ¿cómo podemos renderizar o desactivar los btns de deshacer/rehacer?
??? Puedes usar las APIs de Undo Manager donde quieras, no he dicho que solo puedas usarlas después de deshacer o rehacer eventos.
El evento de Actualización nunca parece activarse
El evento de 'actualización' se añadió en https://github.com/artf/grapesjs/releases/tag/v0.14.55
Preguntas y respuestas relacionadas
Continúa investigando con debates sobre temas similares.
Issue #1683
¿Cómo cambiar el id/clase cuando aparece un nuevo elemento en el editor o renderizo un elemento con IP dinámica?
Hola @artf, Espero que estés bien. Tengo dos preguntas sobre la suma de bloques dinámicos, 1) ¿Es posible renderizar el bloque con id dinám...
Issue #1771
Tipo de rasgo: botón que no funciona
Hola, @artf Cuando intento usar rasgos tipo botón. No dispara ninguna función. ¿Podrías ayudarme con esto, por favor? ¿Podrías compartir un...
Issue #1662
Cómo podemos reinicializar el editor
Hola @artf, Espero que estés bien. Cómo podemos reinicializar el editor con datos json. Queremos reinicializar el editor con algunos de los...
Issue #1465
Cómo crear el gestor de deshacer personalizado
Hola @artf, Cómo podemos crear el gestor de deshacer personalizado con un clic. Todos los cambios tienen que añadir el administrador de des...
Plugins de pago que cumplen con este problema
Seleccionado por temas clave y relevancia de etiquetas para ayudarte a enviar más rápido.
Cargando recomendaciones de plugins de pago...
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 →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.
Explorar categorías de plugins
Ve directamente a las páginas de categorías de plugins en el marketplace.