Issue #397💬 RespondidoAbierto el 9 de octubre de 2017por HarshOBReacciones 1

Cambiar el valor de los rasgos en función de los anteriores.

Respuesta rápidapor artf1

Quise decir "tengo que añadir" 😬

Lee la respuesta completa abajo ↓

Pregunta

Fragmento de códigoTEXT
Hola

Estoy usando dos menús desplegables en rasgos. En el valor seleccionado del primer desplegable voy a llamar a una API y colocar los datos en otro desplegable. Tengo datos en consola pero no se cargan en la página. Tengo que actualizar la página para ver los cambios. ¿Qué debería hacer para que la página cambie inmediatamente?

Aquí está mi código:
' comps.addType('ReUseComponent', {
        Defina el modelo
        model: defaultModel.extend({

init() {
                this.listenTo(this, 'change:selectPartial', this.doStuff);
                this.listenTo(this, 'change:selectID', this.doStuff_second);
            },

doStuff() {
            this.get('traits').each(function(trait) {
                traits_arr.push(trait.get('value'))

});
            
ARR contiene el valor de mis primeros desplegables

var categsTrait = this.get('traits').where({name: 'selectID'})[0];
  			categsTrait.set('options', partials_arr)
  			editor.trigger('change:ReUseComponent');

},

doStuff_second() {
            	Tengo mis datos aquí
            },

Extender propiedades predeterminadas
            defaults: Object.assign({}, defaultModel.prototype.defaults, {
                Editable: Cierto,
                Droppable: Cierto,
                Rasgos: [
                
{
                        etiqueta: 'NombreDeParcial',
                        nombre: 'selectPartial',
                        tipo: 'select',
                        cambioProp: 1,
                        Opciones: ARR
                    },
                    {
                        etiqueta: 'PartialID',
                        nombre: 'selectID',
                        tipo: 'select',
                        cambioProp: 1,
                        Opciones: ''
                    }
                ],
            }),

}, {
            isComponent: function(el) {
                if (el.tagName == 'REUSECOMPONENT') {
                    return {
                        tipo: 'ReUseComponent'
                    };
                }
            },
        }),

vista: defaultType.view,

El render() debería devolver 'esto'
        render: function() {
            Extiende el método de renderizado original
            defaultType.view.prototype.render.apply(esto, argumentos);
            this.el.placeholder = 'Texto aquí'; <- No afecta al código HTML final
            devuelvo esto;
        },
    });`

También adjunté ScreenShot.

! [imagen 2](https://user-images.githubusercontent.com/28950214/31339389-57d4138c-ad20-11e7-8a32-1108a06ab8c1.jpg)

También lo intenté, pero no soluciona mi problema.

'doStuff(){
  ...
  editor.trigger('change:selectedComponent');
}
`

Respuestas (3)

artf11 de octubre de 2017

Quise decir "tengo que añadir" 😬

artf10 de octubre de 2017

Hay que añadir un oyente para que cambien las opciones

HarshOB10 de octubre de 2017

¿Y cómo puedo añadir un oyente para cambiar la opción?

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.