Ce document a été traduit par IA. Pour des informations précises, veuillez consulter la version anglaise.
Abonnez-vous aux événements de contexte (tels que les changements de valeur de champ, les changements de propriété, les rafraîchissements de ressources, etc.) dans RunJS. Les événements sont mappés à des événements DOM personnalisés sur ctx.element ou à des événements du bus d'événements interne de ctx.resource selon leur type.
| Scénario | Description |
|---|---|
| JSField / JSEditableField | Écouter les changements de valeur de champ provenant de sources externes (formulaires, liaisons, etc.) pour mettre à jour l'interface utilisateur de manière synchrone, réalisant ainsi une liaison bidirectionnelle. |
| JSBlock / JSItem / JSColumn | Écouter les événements personnalisés sur le conteneur pour répondre aux changements de données ou d'état. |
| resource (lié aux ressources) | Écouter les événements du cycle de vie des ressources tels que le rafraîchissement ou la sauvegarde pour exécuter une logique après la mise à jour des données. |
| Nom de l'événement | Description | Source de l'événement |
|---|---|---|
js-field:value-change | Valeur du champ modifiée de l'extérieur (ex : liaison de formulaire, mise à jour de la valeur par défaut) | CustomEvent sur ctx.element, où ev.detail est la nouvelle valeur |
resource:refresh | Les données de la ressource ont été rafraîchies | Bus d'événements de ctx.resource |
resource:saved | Sauvegarde de la ressource terminée | Bus d'événements de ctx.resource |
Règle de mappage des événements : les événements préfixés par
resource:passent parctx.resource.on, tandis que les autres passent généralement par les événements DOM surctx.element(s'il existe).
ctx.on doivent être supprimés au moment opportun via ctx.off pour éviter les fuites de mémoire ou les déclenchements en double.ctx.off est généralement appelé dans la fonction de nettoyage de useEffect.ctx.off peut ne pas exister ; il est recommandé d'utiliser le chaînage optionnel : ctx.off?.('eventName', handler).ctx.on(eventName, handler) doit avoir un ctx.off(eventName, handler) correspondant, et la référence du handler transmise doit être identique.on/offjs-field:value-change)