Añadir nuevos rasgos a los componentes y actualizar los existentes con estos
@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:
- Crear un componente personalizado y compilar el código
- Arrastrar este componente personalizado al editor
- Guardar los cambios en la base de datos
- Modificar el componente añadiendo un nuevo rasgo y compilar de nuevo
- Cargar los componentes desde la base de datos
- 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)
@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.
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
@artf esto eliminó rasgos personalizados! como mencioné en el #2007
Preguntas y respuestas relacionadas
Continúa investigando con debates sobre temas similares.
Issue #1715
Hola, soy nuevo en tu proyecto, pero me encanta. Tengo un pequeño problema con los atributos de la imagen.
He añadido dos rasgos nuevos al gestor de rasgos para imágenes. Anchura y altura. Lo añadí como plugin siguiendo tu ejemplo. Funciona perfe...
Issue #3246
¿Es posible usar los tipos de rasgos existentes en nuevos rasgos personalizados? (por ejemplo, el selector de colores)
Me gustaría crear un nuevo rasgo personalizado para usar, que tenga la entrada del selector de color y una casilla de verificación para que...
Issue #1113
[PREGUNTAS] ¿El nuevo tipo de rasgo no funciona con los componentes renderizados?
Hola, gracias por el excelente marco. Estoy intentando aplicar esto a mi proyecto. Quiero añadir un nuevo rasgo para el componente existent...
Issue #3541
[PREGUNTA] ¿Cuál es la forma idiomática de añadir y eliminar clases de los componentes?
Hola 👋 ¡Me encanta el editor! Estamos usando rasgos para modificar las clases que tiene un componente, pero eso resulta un poco forzado po...
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 →Explorar categorías de plugins
Ve directamente a las páginas de categorías de plugins en el marketplace.