Ce document a été traduit par IA. Pour des informations précises, veuillez consulter la version anglaise.
L'instance FlowModel où se trouve le contexte d'exécution RunJS actuel. Il s'agit du point d'entrée par défaut pour des scénarios tels que JSBlock, JSField et JSAction. Le type spécifique varie selon le contexte : il peut s'agir d'une sous-classe telle que BlockModel, ActionModel ou JSEditableFieldModel.
| Scénario | Description |
|---|---|
| JSBlock | ctx.model est le modèle de bloc actuel. Vous pouvez accéder à resource, collection, setProps, etc. |
| JSField / JSItem / JSColumn | ctx.model est le modèle de champ. Vous pouvez accéder à setProps, dispatchEvent, etc. |
| Événements d'action / ActionModel | ctx.model est le modèle d'action. Vous pouvez lire/écrire les paramètres d'étape, émettre des événements, etc. |
Astuce : Si vous avez besoin d'accéder au bloc parent contenant le JS actuel (par exemple, un bloc Formulaire ou Tableau), utilisez
ctx.blockModel; pour accéder à d'autres modèles, utilisezctx.getModel(uid).
FlowModel est la classe de base. À l'exécution, il s'agit d'une instance de diverses sous-classes (telles que BlockModel, FormBlockModel, TableBlockModel, JSEditableFieldModel, ActionModel, etc.). Les propriétés et méthodes disponibles dépendent du type spécifique.
| Propriété | Type | Description |
|---|---|---|
uid | string | Identifiant unique du modèle. Peut être utilisé pour ctx.getModel(uid) ou la liaison d'UID de fenêtre contextuelle (popup). |
collection | Collection | La collection liée au modèle actuel (existe lorsque le bloc ou le champ est lié à des données). |
resource | Resource | Instance de ressource associée, utilisée pour rafraîchir, obtenir les lignes sélectionnées, etc. |
props | object | Configuration de l'interface utilisateur (UI) ou du comportement du modèle. Peut être mis à jour via setProps. |
subModels | Record<string, FlowModel> | Collection de modèles enfants (par exemple, les champs dans un formulaire, les colonnes dans un tableau). |
parent | FlowModel | Modèle parent (le cas échéant). |
| Méthode | Description |
|---|---|
setProps(partialProps: any): void | Met à jour la configuration du modèle et déclenche un nouveau rendu (ex : ctx.model.setProps({ loading: true })). |
dispatchEvent(eventName: string, payload?: any, options?: any): Promise<any[]> | Émet un événement vers le modèle, déclenchant les flux de travail configurés sur ce modèle qui écoutent ce nom d'événement. Le payload optionnel est transmis au gestionnaire du flux de travail ; options.debounce permet d'activer l'anti-rebond. |
getStepParams?.(flowKey, stepKey) | Lit les paramètres d'étape du flux de configuration (utilisé dans les panneaux de réglages, les actions personnalisées, etc.). |
setStepParams?.(flowKey, stepKey, params) | Écrit les paramètres d'étape du flux de configuration. |
| Besoin | Utilisation recommandée |
|---|---|
| Modèle du contexte d'exécution actuel | ctx.model |
| Bloc parent du JS actuel | ctx.blockModel. Souvent utilisé pour accéder à resource, form ou collection. |
| Obtenir n'importe quel modèle par UID | ctx.getModel(uid) ou ctx.getModel(uid, true) (recherche à travers les piles de vues). |
Dans un JSField, ctx.model est le modèle de champ, tandis que ctx.blockModel est le bloc Formulaire ou Tableau contenant ce champ.