Issue #2027💬 RespondidoAbierto el 22 de mayo de 2019por sdrebelReacciones 0

Cómo añadir rasgos dinámicamente basándose en la selección desplegable

Respuesta rápidapor sdrebel

He probado esto debajo del código y está añadiendo el array de rasgos. Pero no reflejado en el editor. domComps.getType('linking').model.prototype.defaults.traits.push({ nombre: 'producto' })

Lee la respuesta completa abajo ↓

Pregunta

Hola @artf, Tengo un componente personalizado con rasgos personalizados. Cuando selecciono la opción en el desplegable, hay que añadir más campos según la selección. ¿Cómo lo hago?

Fragmento de códigoTEXT
**Desplegable**
! [antes](https://user-images.githubusercontent.com/19382262/58178404-c52c6a00-7cc3-11e9-8a70-e00e45ed71ee.jpg)

**Campos extra**
! [después](https://user-images.githubusercontent.com/19382262/58178909-b5615580-7cc4-11e9-968e-d5b35781c39f.jpg)

El código está abajo, he añadido el oyente pero no aparece la opción de añadir nuevos campos a la configuración actual de rasgos.

DomComps.addType('linking', {
        model: CustomType.model.extend({
            init() {
                this.listenTo(this, 'change:link-type', function() {
                    alerta();
                });
            },
            por defecto: Object.assign({}, CustomType.model.prototype.defaults, {
                rasgos: [{
                    etiqueta: 'Título',
                    Nombre: 'Título',
                    Provisional: 'Título'
                }, {
                    tipo: 'select',
                    etiqueta: 'Tipo',
                    Nombre: 'tipo enlace',
                    Opciones: [
                        { valor: 'enlace', nombre: 'Enlace' },
                        { valor: 'popup', nombre: 'Popup' },
                    ],
                    cambioprop: 1
                }, {
                    etiqueta: 'Enlace',
                    Nombre: 'Data-link',
                    marcador de posición: 'Enlace'
                }, {
                    etiqueta: 'Tracking',
                    Nombre: 'Data-Track',
                    marcador de posición: 'Tracking ID'
                }],
            }),
        }),
        view: CustomType.view.extend({
            eventos: {
            },
        }),
    });

Respuestas (2)

sdrebel23 de mayo de 2019

He probado esto debajo del código y está añadiendo el array de rasgos. Pero no reflejado en el editor.

domComps.getType('linking').model.prototype.defaults.traits.push({ nombre: 'producto' })

sdrebel24 de mayo de 2019

Encontré la solución con el código más reciente.

this.addTrait({ type: 'checkbox', nombre: 'muted' })

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 →

Explorar categorías de plugins

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