Este documento ha sido traducido por IA. Para información precisa, consulte la versión en inglés.
Suscríbase a eventos de contexto (como cambios en el valor de los campos, cambios de propiedades, actualizaciones de recursos, etc.) en RunJS. Los eventos se mapean a eventos DOM personalizados en ctx.element o al bus de eventos interno de ctx.resource según su tipo.
| Escenario | Descripción |
|---|---|
| JSField / JSEditableField | Escuche los cambios en el valor de los campos desde fuentes externas (formularios, vinculaciones, etc.) para actualizar la interfaz de usuario de forma sincrónica, logrando una vinculación bidireccional. |
| JSBlock / JSItem / JSColumn | Escuche eventos personalizados en el contenedor para responder a cambios de datos o de estado. |
| Relacionado con resource | Escuche eventos del ciclo de vida del recurso, como actualización o guardado, para ejecutar lógica después de la actualización de los datos. |
| Nombre del evento | Descripción | Fuente del evento |
|---|---|---|
js-field:value-change | Valor del campo modificado externamente (por ejemplo, vinculación de formulario, actualización de valor por defecto) | CustomEvent en ctx.element, donde ev.detail es el nuevo valor |
resource:refresh | Los datos del recurso se han actualizado | Bus de eventos de ctx.resource |
resource:saved | Guardado del recurso completado | Bus de eventos de ctx.resource |
Reglas de mapeo de eventos: Los eventos con el prefijo
resource:pasan porctx.resource.on, mientras que los demás suelen pasar por eventos DOM enctx.element(si existe).
ctx.on deben eliminarse en el momento adecuado a través de ctx.off para evitar fugas de memoria o activaciones duplicadas.ctx.off se llama habitualmente dentro de la función de limpieza de useEffect.ctx.off podría no existir; se recomienda utilizar el encadenamiento opcional: ctx.off?.('eventName', handler).ctx.on(eventName, handler) debe tener un ctx.off(eventName, handler) correspondiente, y la referencia del handler pasada debe ser idéntica.on/offjs-field:value-change)