HAZAÑA: Permitir una configuración dinámica droppable usando una función
Relaciones públicas asociadas: https://github.com/artf/grapesjs/pull/3393
Lee la respuesta completa abajo ↓Pregunta
Tengo un requisito que me permite usar selectores para determinar si un elemento es soltable. Por ejemplo:
! imagen
El componente "hijo" debe estar dentro de un componente "padre", sin embargo, si el componente hijo contiene un atributo ref, solo puede arrastrarse a otros contenedores padres que coincidan con el mismo valor de ref que el padre actual. Dado el marcado anterior, el componente hijo puede colocarse en el último contenedor, pero no en el contenedor con la referencia 5678. Sin embargo, el segundo elemento hijo podía ser colocado en cualquiera de los componentes padres.
Esto se lograría fácilmente si el droppable permitiera una función:
Droppable: (SRC, objetivo) => {
Algo de lógica
regreso fiel;
},
Esto requeriría un cambio bastante sencillo en el Clasificador:
Comprueba si el objetivo podía aceptar la fuente
sea droppable = trgModel.get('droppable');
si (tipode droppable === 'función') {
Sea Res = droppable(src, trg);
resultante.droppable = res;
result.dropInfo = res;
droppable = res;
} else {
Lógica existenteRespuestas (3)
Relaciones públicas asociadas: https://github.com/artf/grapesjs/pull/3393
@artf tienes alguna pregunta sobre esta característica o sobre el enfoque adoptado en la PR?
Gracias por informar de esto, @rywilson28.
Gran sugerencia sobre FEAT: ¡Permite la configuración dinámica droppable usando una función! Aunque esta función específica aún no está en la API principal, existen varias formas de lograr un comportamiento similar.
Usando el sistema de eventos: '''javascript editor.on('component:update', (component) => { Tu lógica aquí });
**Enfoques alternativos:**
- Escuchar 'selector:add' para cambios en el selector CSS
- Usar 'selector:custom' para reglas personalizadas
- Aprovechar los eventos 'change:*' para un seguimiento detallado
- Crear un plugin que extienda el editor con esta capacidad
**Lo hace oficial:**
Si esta función beneficiaría a muchos usuarios, considera abrir una Solicitud formal de Funcionalidad en el repositorio GrapesJS con:
- Un caso de uso detallado
- Ejemplo de código que muestra el comportamiento deseado
- Por qué esto es importante para tu flujo de trabajo
El equipo central es receptivo a solicitudes de funcionalidades bien motivadas respaldadas por casos de uso reales.
Preguntas y respuestas relacionadas
Continúa investigando con debates sobre temas similares.
Issue #3561
HAZAÑA: Soporte mejorado para el DOM de las sombras
¿Qué intentas añadir a GrapesJS? Mejor soporte para Shadow DOM, que permite a los desarrolladores renderizar GrapesJS dentro de un elemento...
Issue #3412
El guardado automático funciona parcialmente y deja de funcionar tras insertar texto
Hola a todos. Estoy usando este proyecto increíble para una aplicación de producción escrita con React.js, así que lo integré dentro de mi...
Issue #3347
¿Cómo puedo conseguir código JS sin comprimir para editarlo?
Hola, gracias por revisar mi problema. Quiero usar mi propio JSEditor para editar html, css y js. Primero, uso 'getHtml', 'getCss', 'getJs'...
Issue #4455
'panel-dispositivos' y 'panel-switcher' en conflicto
Versión GrapesJS [X] Confirmo que se debe usar la última versión de GrapesJS ¿Qué navegador usas? Versión de Chrome 103.0.5060.114 Enlace d...
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.
Tutorial
Ship to Production Faster: What’s New in GrapesJS Shadcn
Supercharge your page builder! GrapesJS Shadcn adds live drag previews, rich text / commands, dynamic data, and canvas presets to ship to prod faster.
Tutorial
How to Build a Production GrapesJS Editor: The Complete Walkthrough of Brief, Preset, Plugins, and Services
A complete walkthrough of building a production GrapesJS editor: how to choose a preset, pick plugins, and scope setup services without burning a sprint.
Tutorial
Embed GrapesJS in Your SaaS: A Weekend Guide
Embed GrapesJS in your SaaS and ship a white-label page builder over a weekend. Honest tradeoffs, real code, and the plugins that close the UX gap.
Explorar categorías de plugins
Ve directamente a las páginas de categorías de plugins en el marketplace.