Issue #2007💬 RespondidoAbierto el 10 de mayo de 2019por kaoz70Reacciones 1

Añadir nuevos rasgos a los componentes y actualizar los existentes con estos

Respuesta rápidapor kaoz701

@Lakshit-Singhal En ese caso creo que la mejor opción sería crear un plugin personalizado y, antes de inicializar GrapesJS, llamar a la API, obtener los valores y pasarlos a la función de inicialización a través de las opciones del plugin, así estarán presentes cuando se inicialice el rasgo. Consulta la documentación...

Lee la respuesta completa abajo ↓

Pregunta

Tengo algunos componentes personalizados creados antes de modificar sus rasgos (por ejemplo, creé un nuevo rasgo para ellos), pero estos componentes no contienen el nuevo rasgo. Si arrastro un nuevo componente al editor, lo tendrá.

Pasos para reproducirse:

  1. Crear un componente personalizado y compilar el código
  2. Arrastrar este componente personalizado al editor
  3. Guardar los cambios en la base de datos
  4. Modificar el componente añadiendo un nuevo rasgo y compilar de nuevo
  5. Cargar los componentes desde la base de datos
  6. Los componentes cargados no tendrán el nuevo rasgo

Cargo y guardo todos los datos en la base de datos: estilos, CSS, componentes y html.

load(keys, clb, clbErr) { Carga desde el modelo const content = _model.template[_language.locale]; eliminar content.assets; Elimina los recursos si existen CLB(contenido); },

¿Hay alguna forma de que los componentes cargados sean conscientes de los cambios en los rasgos?

Respuestas (3)

kaoz7019 de noviembre de 2019

@Lakshit-Singhal En ese caso creo que la mejor opción sería crear un plugin personalizado y, antes de inicializar GrapesJS, llamar a la API, obtener los valores y pasarlos a la función de inicialización a través de las opciones del plugin, así estarán presentes cuando se inicialice el rasgo. Consulta la documentación sobre cómo crear un plugin personalizado, o puedes echar un vistazo a mis plugins: GrapesJS Bootstrap 4 y GrapesJS Swiper Slider para hacerte una idea.

artf12 de mayo de 2019

Esto ocurre porque el editor también almacena la información de rasgos en componentes. Puedes eliminar esta información ampliando el componente y actualizando su método a JSON '''js const typeModel = domc.getType('my-type').model;

domc.addType('my-type', { modelo: { ... toJSON() { resultado const = typeModel.prototype.toJSON.apply(this); eliminar result.traits;

resultado de retorno; } } })


PD: Creo que eliminaré rasgos de JSON en la próxima versión. Quizá en muchas versiones anteriores eso tendría sentido, pero ahora ni siquiera recomendaría guardar cosas en Rasgos
ahmedeldeeb25-zz12 de mayo de 2019

@artf esto eliminó rasgos personalizados! como mencioné en el #2007

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.