Usar rasgo para modificar la clase de componentes
Pregunta
¡Hola!
Estoy intentando cambiar el valor de las clases con muy poco éxito.
Aquí está la función 'onValueChange' de mi rasgo personalizado:
'''JavaScript
onValueChange() {
var traitModel = this.model;
var selectedComponent = this.target;
var inputValue = traitModel.get('value');
this.target.set('content', this.model.get('value'));
selectedComponent.set('attributes', {class: inputValue});
}
Lo que da como resultado una salida HTML de:
'''HTML
<input class="input txt-red" class="col-lg-6"/>
Obviamente, esto no es HTML legal. También produce resultados extraños al añadir o eliminar una clase en la entrada de Clases.
¿Cuál es la forma correcta de hacerlo?
Respuestas (3)
@artf ¿Esto es siquiera posible?
Así que lo he solucionado, de una forma bastante improvisada, ¡pero funciona!
Solo tienes que crear un rasgo personalizado y usar lo siguiente para el onValueChange()
'''JavaScript onValueChange() { var parentModel = this.target.collection.parent.sm; var component = this.target; const sm = parentModel.get('SelectorManager'); var traitModel = this.model; var selectedComponent = this.target; var label = traitModel.get('value'); var compCls = component.get('classes'); compCls.forEach(element => { if (element.id == this.model._previousAttributes.value) { compCls.remove(element); } }); si (etiqueta) { var classModel = sm.add({label}); compCls.add(ModelClase); parentModel.trigger('targetClassAdded'); } }
Este hilo se ha bloqueado automáticamente porque no ha habido actividad reciente desde que se cerró. Por favor, abre un nuevo problema para bugs relacionados.
Preguntas y respuestas relacionadas
Continúa investigando con debates sobre temas similares.
Issue #1047
[BUG] El modelo no puede cambiar después de cambiar el valor en el menú desplegable Seleccionar personalizado.
Hola, Estoy usando el enlace CDN para uvas JS de unpkg.com En mi proyecto, he usado un rasgo personalizado como menú desplegable de selecci...
Issue #460
Cuando la vista del componente modifica el HTML, los componentes de texto ya no son editables
Estoy intentando crear un componente personalizado que contenga algo de texto lorem ipsum en el contenido, para editarlo una vez que esté e...
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 #1691
Cómo usar variables/funciones fuera del script
Hola @artf, ¿Cómo puedo acceder a las funciones de la variable que están fuera del script? Mi código es como, Estoy usando angular.js(Angul...
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.
Explorar categorías de plugins
Ve directamente a las páginas de categorías de plugins en el marketplace.