Rasgo de lista/array
@dkmurakaru presta atención a que estás creando una entrada real '''js var input = document.createElement('div'); ``` por lo tanto, también deberías actualizar métodos como 'onChange' y 'setInputValue'
Lee la respuesta completa abajo ↓Pregunta
Hola,
Estoy intentando redactar un rasgo que permita crear una lista de formularios y genere los respectivos en el modelo. Hasta ahora tengo esto: '''javascript editor. TraitManager.addType('list', { eventos: { 'keyup': 'onChange' }, getInputEl: function() { var self = esto; var idx = 1; función createForm(input) { self.model.attributes.options.map(function(m) { TOOD: Añadir opciones de selección console.log(m); si (m.type === 'select') { var s = $('<select name="'+ m.name +'"></select>').get(0); s.appendChild($('<valor de la opción="">'+ m.placeholder +'</option>').get(0)); m.options.map(function(opt) { s.appendChild($('<valor de opción="'+ opt.value +'">'+ opt.name +'</option>').get(0)) }) input.appendChild(s); } else { input.appendChild($('<input name="'+ m.name +'" placeholder="'+ m.placeholder +'"/>').get(0)) }
}); input.appendChild($('<button id="'+ idx +'" class="btn btn-sm btn-danger pull-left"><i class="fa fa-minus"></i> Remove</button>').get(0)) } if (!this.inputEl) { var input = document.createElement('div'); var btn = $('<button class="btn btn-sm btn-default"><i class="fa fa-plus"></i> Añadir</button>'); Escucha los clics en añadir botón y añadir al modelo btn.on('click', function(ev) { var id = $(ev.currentTarget).data(''); idx += 1; createForm(input); }); input.appendChild(btn.get(0)); createForm(input); Input.valor = this.target.get('content'); this.inputEl = entrada; } return this.inputEl; }, onValueChange: función () { console.log(this.model.get('value')); this.target.set('lista', this.model.get('valor')); } });
En los problemas actuales no puedo vincular los elementos resultantes a los oyentes del evento onChange. ¿Tendré que conectar manualmente cada elemento a un oyente? Si es así, ¿cómo debería proceder para actualizar el modelo del formulario?
Gracias.
Respuestas (2)
@dkmurakaru presta atención a que estás creando una entrada real '''js var input = document.createElement('div');
por lo tanto, también deberías actualizar métodos como ['onChange'](https://github.com/artf/grapesjs/blob/dev/src/trait_manager/view/TraitView.js#L44) y ['setInputValue'](https://github.com/artf/grapesjs/blob/dev/src/trait_manager/view/TraitView.js#L52)
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 #1897
[Pregunta] vista vs código
Hola... ¡Y perdón por mi inglés! Antes que nada, enhorabuena por este marco. Estoy intentando usar GrapeJS para crear mi propio editor de W...
Issue #704
¿Restringir los elementos arrastrables a los padres?
No estoy seguro de si esto ya existe y aún no lo he visto (disculpad si es el caso). ¿Hay alguna forma de restringir dónde se pueden soltar...
Issue #405
No se puede arrastrar un elemento de la lista dentro de la lista no ordenada
Ciao, spero che stai bene e grazie per GrapesJS! Estoy intentando crear una forma para que los usuarios puedan hacer preguntas de opción mú...
Issue #1073
Integración con GWT
Hola, En realidad, tengo una solicitud de GWT y necesito integrar uvas JS. Mi problema es que no sé hacer esto por todos los archivos difer...
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.