Editor.store(); Disparos múltiples
Cada vez que llamas a 'save-db' '''js cmdm.add('save-db',{ run: function(editor, sender){ ... Sácalo de tu orden
Lee la respuesta completa abajo ↓Pregunta
Hola @all, Uso mi código personalizado para detener los datos en el servidor. Todo funciona bien, pero editor.store(); dispara una vez en el primer clic, dos en el segundo, tres veces en el tercer clic... y así sucesivamente.
var editor = grapesjs.init({
Altura: '100%',
storageManager:{
guardado automático: falso,
autoload: false,
setStepsBeforeGuard: 0,
Tipo: 'A distancia',
contentTypeJson: false,
},
.....
Guardar en el servidor
cmdm.add('save-db',{
run: function(editor, sender){
sender & & sender.set('active');
editor.store();
editor.on('storage:store', function(e) {
console.log('Almacenado', e);
console.log(editor.runCommand('gjs-get-inlined-html'));
var data = e;
var inline = editor.runCommand('gjs-get-inlined-html');
$.post(
URLAPP + 'lib/editor-nl/save-tpl.php',
{
'datos': datos,
'en línea': en línea,
'tpl-name': $('#panel-tpl-title').val()
}
);
});
}
});
pnm.addButton('options', {
id: 'guardar-db',
claseNombre: 'fa fa-floppy-o',
Comandamiento: 'guardar-db',
atributos: {
'título': 'Plantilla de especialización',
'data-tooltip-pos': 'abajo',
}
});
En StorageManager > tipo uso 'remoto'; si uso 'local', el primer clic no tiene efecto. ¿Alguien puede ayudarme?
Respuestas (3)
Cada vez que llamas a 'save-db' '''js cmdm.add('save-db',{ run: function(editor, sender){ ...
Adjuntas a un nuevo oyente
'''js
editor.on('storage:store', function(e) { ...
Sácalo de tu orden
Hazlo así para no conectar oyentes cada vez
editor.on('storage:load', function(e) {
console.log('Cargado', e);
});
editor.on('storage:store', function(e) {
console.log('Almacenado', e);
});
cmdm.add('save-db', {
run: function(editor, sender)
{
sender & & sender.set('active'); Apaga el botón
editor.store();
}
});
Este hilo se ha bloqueado automáticamente porque no ha habido actividad reciente desde que se cerró. Por favor, abre un nuevo problema para bugs relacionados.
Preguntas y respuestas relacionadas
Continúa investigando con debates sobre temas similares.
Issue #957
[Pregunta] Añadir atributos personalizados (datos-) a los recursos/imágenes al subir/seleccionar
Hola, estoy haciendo todo lo posible por encontrar la mejor manera de hacerlo, pero necesito adjuntar dos etiquetas de datos HTML5 personal...
Issue #1479
Elemento personalizado con ventana emergente
Hola @artf He creado una ventana emergente para seleccionar datos personalizados de enlaces, pero los datos se guardan y también se muestra...
Issue #1566
Estilo predeterminado para bloques personalizados
Hola, estoy usando GrapesJS para un creador de páginas dentro de una web de Prestashop. La idea es establecer la plantilla predeterminada a...
Issue #1580
[Pregunta] Añadir botón personalizado a RTE
Hola a todos, Actualmente estoy intentando alejarme de CKEDITOR (usado en una app antigua para crear correos electrónicos y micrositios). E...
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.