Issue #1227💬 RespondidoAbierto el 22 de junio de 2018por smaqeelkazmiReacciones 0

Volver a renderizar la vista en el lienzo del editor cada vez que cambie el valor del rasgo

Respuesta rápidapor artf

Actualiza tu opinión de esta manera '''js view: dView.extend({ init() { this.listenTo(this.model, 'change:attributes:data-dummyimage', this.render) }, ... }) ```

Lee la respuesta completa abajo ↓

Pregunta

¿Existe alguna forma posible en 'grapesjs' de que cada vez que un usuario cambia el valor de un 'Trait' de un 'componente' personalizado, la función de renderizado escuche o se vuelva a renderizar?

Estoy creando un componente personalizado para contenidos dinámicos. El código de componente personalizado es:

domComps.addType('dynamicImage', {
        model: dModel.extend({
            defaults: Object.assign({}, dModel.prototype.defaults, {
                Rasgos: [
                    Las cadenas se convierten automáticamente en tipos de texto
                    'src',
                    'título',
                    {
                        etiqueta: 'Imagen Ficticia',
                        Nombre: 'Data-Dummyimage',
                        Valor: 'http://localhost/templates/assets/logo.png'
                    }
                ],
            }),
        }, {
            isComponent: function (el) {  
                return { type: 'image' }
            }
        }),

view: dView.extend({
            eventos: { },
            render: función () {  
                dView.prototype.render.apply(esto, argumentos);
                this.el.src = this.el.dataset.dummyimage;
                devuelvo esto;
            }
        })
    });

Quiero que cada vez que el usuario cambie el valor de 'Trait' llamado Dummy Image, la función de renderizado se ejecute y afecte el valor 'src' en consecuencia en el resultado de 'canvas' para la etiqueta 'img'.

Esto solo afecta la vista en lienzo del editor, pero no en 'modelo'.

¿Alguien puede ayudarme a resolver esto?

Gracias de antemano. :)

Respuestas (3)

artf24 de junio de 2018

Actualiza tu opinión de esta manera '''js view: dView.extend({ init() { this.listenTo(this.model, 'change:attributes:data-dummyimage', this.render) }, ... })

mararn161813 de septiembre de 2018

Después de 2 días esto me salvó la vida. ¡Gracias a los dos!

vitanshu27 de diciembre de 2018

Pero las propiedades de HTML no se pueden editar en Canvas.

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.