Actualmente estoy usando formBuilder . Esto también funciona muy bien hasta ahora. En la nueva versión del creador de formularios Formeo del desarrollador Kevin Chappell , hay una función de condición que me gustaría usar. De ahí el cambio.
En el FormBuilder actual hay un evento para consultar cuando se ha abierto un elemento con el "icono de edición":
onOpenFieldEditar
Devolución de llamada que se ejecuta cuando se abre una ventana de edición de campo. proporciona el nodo DOM del panel de edición
var options = { onOpenFieldEdit: function (editPanel) { alert ('a field edit panel was opened'); }, }; $ (container) .formBuilder (options);Echo de menos esta función dentro de Formeo formBuilder. Hay "solo" un evento allí
onRender
Se dispara cuando se renderiza un elemento.
events: { onRender: element => { console.log (`Id rendered" $ {element.id} "`) }, },Este evento también se ejecuta cuando la página se carga inicialmente. Si ya hay 10 elementos en el formulario, hay 10 eventos representados.
Desafortunadamente, no puedo leer más información, como el tipo de campo en el DOM de Formeo, por lo que necesito hacer una pequeña solución.
const formeoUpdatedThrottled = throttle ( () => { events.opts.onUpdate ({ timeStamp: window.performance.now (), type: EVENT_FORMEO_UPDATED, detail: components.formData, }) render (components.formData) }, ANIMATION_SPEED_FAST, { leading: false, } ) export const render = function renderFields (formData) { const dataLength = Object.keys(formData.fields).length let i if (dataLength> 0) { i = 0 while (i <dataLength) { console.log(formData.fields [Object.keys (formData.fields) [i]]. id, formData.fields [Object.keys (formData.fields) [i]]. meta.id); i ++ } } }No es particularmente bueno porque la función render() se llama 2-3 veces (No se ha visto ningún patrón hasta ahora). Independientemente del número de elementos de formulario.
¿Quizás alguien de ustedes conoce el evento onOpenFieldEdit "normal"?