Issue #2628💬 RespondidoAbierto el 8 de marzo de 2020por abzal0Reacciones 2

Cómo actualizar el valor del rasgo

Respuesta rápidapor pouyamiralayi1

@abzal0 vale! Aunque el enfoque de la hélice debe funcionar bien, no sé por qué no es así, o me estoy perdiendo algo aquí. Si queremos usar los atributos, debes usar ''addAttributes'' para cambiar el atributo, aquí tienes un ejemplo práctico del procedimiento: ¡Salud!

Lee la respuesta completa abajo ↓

Pregunta

Fragmento de códigoTEXT
Hola @artf muchas gracias por un gran proyecto, 
He creado un nuevo tipo, es similar al enlace normal, pero el título del enlace se actualiza con ajax. Luego actualiza el rasgo 'linktitle'. El valor de este y el lienzo sí se actualizan, pero el rasgo dentro de "Configuración" sigue mostrando el valor inicial y no cambia. 
Parte del código que debe actualizar el valor:

editor. DomComponents.addType('newLink', {
modelo: {
    Predeterminados: {
         Componentes: [	
				{
					Resaltable: Cierto,
					Editable: Cierto,
					Seleccionable: Verdadero
				}],
         Rasgos: [
						{
							Tipo: 'texto',
							etiqueta: 'Url',
							Nombre: 'URL',
							valor: 'https://',
							cambioProp: 0
						},
						{
							Tipo: 'texto',
							etiqueta: 'Título',
							Nombre: 'linktitle',
							valor: 'Título del enlace', //esto debe actualizarse
						cambioProp: 0
						}
      ]}},
        Vista:{
          		etiquetaNombre: 'div',
			init({ model }) {
			this.listenTo(model, 'change:attributes', model => {
	Primer intento	
editor.getSelected().updateTrait('linktitle', {
Tipo: 'texto',
etiqueta: 'Título 2',
Nombre: 'linktitle',
valor: 'AA', //actualizando el valor a AA
cambioProp: 0
});
Aparece indefinido en el lienzo pero solo actualiza la etiqueta, hay que actualizar el valor
Segundo intento
this.model.atributos.atributos.título=' BB ';	
actualiza el enlace del lienzo a BB, pero no actualiza el rasgo
editor.trigger('component:toggled');
editor.trigger('component:actualizado');
editor.trigger('component:actualización:linktitle');
editor.trigger();  
				});
			},
        }
   }
)

Cualquier sugerencia para actualizar el valor del rasgo sería de ayuda.

Respuestas (3)

pouyamiralayi9 de marzo de 2020

@abzal0 vale! Aunque el enfoque de la hélice debe funcionar bien, no sé por qué no es así, o me estoy perdiendo algo aquí. Si queremos usar los atributos, debes usar ''addAttributes'' para cambiar el atributo, aquí tienes un ejemplo práctico del procedimiento:

  domc.addType('test', {
        modelo: {
            init() {
                this.listenTo(this, 'change:attributes:linkTitle', () => console.log('linkTitle', this.getAttributes()['linkTitle']))
            },
            Predeterminados: {
                atributos: {
                    enlaceTítulo: '',
                },
                estilo: {
                    Relleno: '25px',
                    Margen: '25px',
                },
                Rasgos: [
                    {tipo: 'texto', nombre: 'linkTitle', changeProp: false, label: 'Link Title'}
                ]
            }
        },
        Vista: {
            init() {
                const oldValue = this.model.getAttributes()['linkTitle']
                console.log('linkTitle: ', viejoValor)
                this.model.addAttributes({'linkTitle':oldValue + ' Changed!'})
            }
        }
    })

¡Salud!

abzal09 de marzo de 2020

@pouyamiralayi muchas gracias por tu tiempo, esto solucionó el problema: ' this.model.addAttributes({'linkTitle':oldValue + ' Cambiado!'}) ` Has ahorrado mucho tiempo, gracias de nuevo :)

abzal08 de marzo de 2020

editor.getSelected().getTrait('linktitle').set('value','CCC');

tampoco funciona

Preguntas y respuestas relacionadas

Continúa investigando con debates sobre temas similares.

Plugins de pago que cumplen con este problema

Seleccionado por temas clave y relevancia de etiquetas para ayudarte a enviar más rápido.

Ver todos los plugins

Cargando recomendaciones de plugins de pago...

Opción gratuita

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 →
Opción premium

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.

Todos los tutoriales →

Explorar categorías de plugins

Ve directamente a las páginas de categorías de plugins en el marketplace.