Issue #2526💬 RespondidoAbierto el 24 de enero de 2020por treztreizReacciones 0

Almacenamiento personalizado: autoload no activado

Respuesta rápidapor treztreiz

La opción de autocarga en realidad funciona al añadir el almacenamiento personalizado como plugin.plugin de almacenamiento personalizado: Editor:

Lee la respuesta completa abajo ↓

Pregunta

Versión: grapes.min.js 0.15.10

Hola, Estoy usando un almacenamiento personalizado para cargar y almacenar datos json de/hacia un área de texto. Usar un almacenamiento personalizado parece no soportar la opción de carga automática. En su lugar, tengo que activar manualmente editor.load(), pero parece que actualiza el editor y que afecta la opción noticeOnUnload (que se activa antes de cualquier cambio que haga el usuario).

Aquí está la configuración de StorageManager:

storageManager

const editor = grapesjs.init({
...
storageManager: {
    tipo: 'customStorage',
    guardado automático: falso,
    autocarga: verdadero
},
...
});

Aquí está el almacenamiento personalizado:

almacenamiento personalizado

editor. StorageManager.add('customStorage', {
        load: function(keys, clb, clbErr) {

var res = {}, data = storageEl.text(); Obtén contenido json de Textarea

Lógica personalizada
            if( "" !== datos ) {
                try {

data = JSON.parse(data);
                    para (var i = 0; i < keys.length; i++) {
                        var v = data[keys[i]];
                        si(v) res[claves[i]] = v;
                    }

} catch(e) { clbErr( "Error al analizar JSON : " + e.message ); }
            }

clb( res );

},
        store(data, clb) {
            var dataString = JSON.stringify( data );
            storageEl.text( dataString ); Actualización del contenido JSON de TextArea
            clb();
        }
    });

¿Hay alguna forma de cargar automáticamente un almacenamiento personalizado? ¡Gracias!

Respuestas (3)

treztreiz24 de enero de 2020

La opción de autocarga en realidad funciona al añadir el almacenamiento personalizado como plugin.

plugin de almacenamiento personalizado:

grapesjs.plugins.add('customStorage', editor => {
    ... 
    sm.add('customStorage', { 
        Lógica de almacenamiento personalizada
    });
    ...
});

Editor:

const editor = grapesjs.init({
    ...
    plugins: ['customStorage'],
    storageManager: {
        tipo: 'customStorage',
        autocarga: verdadero
    },
    ...
});
collindutter30 de enero de 2020

@treztreiz conseguiste averiguar cómo hacerlo sin registrarlo como un plugin? Yo también me estoy encontrando con este problema.

treztreiz2 de febrero de 2020

@collindutter Parece que tienes que crear un plugin. Supongo que la opción de autocarga se usa mientras se instancia uvas, y desafortunadamente el editor de funciones. StorageManager.add realmente necesita esa instancia... Esto no ocurre con los plugins, ya que se inyectan en la configuración durante la instancia :) Aunque no estoy seguro de lo que digo

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.