Haz que el contenido de los componentes sea editable
Lo he solucionado: Solo tuve que hacer que el texto fuera un enlace e incluir un componente de texto. Por ejemplo,
Lee la respuesta completa abajo ↓Pregunta
¿Es posible hacer que el contenido de un componente sea completamente editable?
Quiero hacer un ancla personalizada con un rasgo del href, y luego el usuario pueda estilizar el ancla en consecuencia, ya que planeo hacerlo como un botón.
Básicamente quiero que el usuario forme 'Click Me' como lo haría con cualquier texto.
editor. DomComponents.addType('custom_button', {
modelo: {
Predeterminados: {
removible: cierto,
Arrastrable: Cierto,
Badgable: Cierto,
Estilizado: Cierto,
resaltable: falso,
Seleccionable: Cierto,
copiable: falso,
redimensionable: falso,
Editable: Cierto,
Hoverable: Cierto,
Atributos: {Clase: 'BTN GJS-Button'},
etiquetaNombre: 'a',
contenido: 'Haz clic en mí',
rasgos: [{
Tipo: 'texto',
etiqueta: 'URL',
Nombre: 'Href'
}],
},
reRender() {
this.view.render();
}
},
isComponent: function (el) {
if (el.tagName === 'custom_button')
return {type: 'custom_button'};
}
});
editor. BlockManager.add('custom_button', {
id: 'custom_button',
etiqueta: 'Botón',
categoría: 'GUI',
Contenido: {
Tipo: 'custom_button'
}
});
He hecho un violín mostrando cómo queda ahora: https://jsfiddle.net/tb2gyas8/
¿Alguna idea?
Respuestas (1)
Lo he solucionado:
Solo tuve que hacer que el texto fuera un enlace e incluir un componente de texto. Por ejemplo,
editor. DomComponents.addType('custom_button', {
modelo: {
Predeterminados: {
removible: cierto,
Arrastrable: Cierto,
Badgable: Cierto,
Estilizado: Cierto,
resaltable: falso,
Seleccionable: Cierto,
copiable: falso,
redimensionable: cierto,
Editable: Cierto,
Hoverable: Cierto,
Atributos: {Clase: 'BTN GJS-Button'},
Tipo: 'Enlace',
rasgos: [{
Tipo: 'texto',
etiqueta: 'URL',
Nombre: 'Href'
}],
Contenido: 'Hola Mundo'
},
reRender() {
this.view.render();
}
},
extiende: 'enlace',
isComponent: function (el) {
if (el.tagName === 'custom_button')
return {type: 'custom_button'};
}
});
Widget de calendario
editor. BlockManager.add('custom_button', {
id: 'custom_button',
etiqueta: 'Botón',
categoría: 'GUI',
Contenido: {
Tipo: 'custom_button'
}
});
Preguntas y respuestas relacionadas
Continúa investigando con debates sobre temas similares.
Issue #3313
Se requieren muchos clics para que el texto sea editable, ¿podemos hacer que el campo de texto sea editable con un solo clic?
ADVERTENCIA LEE y SIGUE los siguientes 3 pasos, luego ELIMÍNALOS antes de publicar el númeroSeguir las Directrices de CONTRIBUCIÓN https://...
Issue #3409
[PREGUNTA] Propiedad de componente personalizada que no es un rasgo
Me gustaría crear un componente personalizado con una propiedad que se actualice según un código específico, pero no quiero que esta propie...
Issue #2192
[PREGUNTA] ¿Es posible tener diferentes características de componentes para distintos dispositivos?
Estoy intentando crear un componente deslizante que tenga rasgos como 'número de diapositivas' y quiero que ese rasgo sea diferente para ca...
Issue #1297
[PREGUNTA] ¿Es posible hacer múltiples rasgos para hacer un img editable y <a> etiquetar en el componente de tabla?
Hola Artur, Se me olvidó decir que estoy usando la última versión, lo siento por eso. Quiero añadir un plugin para iconos de redes sociales...
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.