No se puede añadir un rasgo nuevo
¡Hola! ¡No veo ninguna razón por la que tu primer enfoque no funcione! ¿Has probado este [https://github.com/artf/grapesjs/issues/2251#issuecomment-530587007)? Salud.
Lee la respuesta completa abajo ↓Pregunta
Estoy intentando añadir un rasgo nuevo pero no funciona. He investigado bastante y probado varias formas, pero sigue sin parecer funcionar. ¿Podríais por favor aclararme qué puedo estar haciendo mal?
Opción 1:
Función predeterminada de exportación (editor, opt = {}) {
const c = opt;
const pfx = c.formClsPfx;
const FORMIO_TYPE = 'jmi_form';
editor. DomComponents.addType(FORMIO_TYPE, {
modelo: {
Predeterminados: {
formURL: c.formURL,
Droppable: falso,
Rasgos: [
Las cadenas se convierten automáticamente en tipos de texto
'name', // Igual que: { type: 'text', name: 'name' }
],
}
},
isComponent(el) {
si (el.getAttribute & &
el.getAttribute('data-gjs-type') === FORMIO_TYPE) {
return {
Tipo: FORMIO_TYPE
};
}
},
Vista: {
init() {
const comps = this.model.get('components');
Añade una plantilla básica de dynamic_form si aún no está inicializada
if (!comps.length) {
comps.reset();
Ten en cuenta que tenemos "data-gjs-editable="false" abajo en la etiqueta div
Consultar: https://github.com/artf/grapesjs/issues/422
comps.add('
<div data-gjs-editable="false" data-js="jmi_form" className="${pfx}"> Este es el componente de prueba </div>
`);
}
} //Fin de la entrada
},
}); Fin de domc.addType
} //Fin de la función de exportación
Opción2: Intentando añadir programáticamente. Sigo el documento de: https://grapesjs.com/docs/modules/Traits.html#add-traits-to-components
Función predeterminada de exportación (editor, opt = {}) {
const c = opt;
const pfx = c.formClsPfx;
const FORMIO_TYPE = 'jmi_form';
editor. DomComponents.addType(FORMIO_TYPE, {
modelo: {
Predeterminados: {
formURL: c.formURL,
Droppable: falso,
traits(component) {
resultado const = [];
result.push('nombre');
console.log("aquí dentro##########")
resultado de retorno;
},
}
},
isComponent(el) {
si (el.getAttribute & &
el.getAttribute('data-gjs-type') === FORMIO_TYPE) {
return {
Tipo: FORMIO_TYPE
};
}
},
Vista: {
init() {
const comps = this.model.get('components');
Añade una plantilla básica de dynamic_form si aún no está inicializada
if (!comps.length) {
comps.reset();
Ten en cuenta que tenemos "data-gjs-editable="false" abajo en la etiqueta div
Consultar: https://github.com/artf/grapesjs/issues/422
comps.add('
<div data-gjs-editable="false" data-js="jmi_form" className="${pfx}"> Este es el componente de prueba </div>
`);
}
} //Fin de la entrada
},
}); Fin de domc.addType
} //Fin de la función de exportación
Esta opción 2 da un error de compilación.
Respuestas (2)
¡Hola! ¡No veo ninguna razón por la que tu primer enfoque no funcione! ¿Has probado este [https://github.com/artf/grapesjs/issues/2251#issuecomment-530587007)? Salud.
Esto ya funciona. El código original funciona.
Preguntas y respuestas relacionadas
Continúa investigando con debates sobre temas similares.
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 #1911
[Pregunta] ¿Es Knockout.js compatible con Grapesjs?
Estoy intentando implementar un binding de atracciones en uno de mis componentes usando Knockout.js. Funciona perfectamente por lo demás, p...
Issue #2514
[Pregunta]: Cómo cambiar el dispositivo de un desplegable a un icono
Estoy intentando reemplazar el desplegable por un icono para los dispositivos siguiendo el ejemplo de la plantilla del boletín, pero no fun...
Issue #853
[PREGUNTA] Rasgo de Crear Cuerpo fijado
Estoy intentando crear dos entradas (ancho y color de fondo) para el cuerpo de la plantilla y me gustaría arreglarlo en la vista de Panel....
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.