ctx.getVar()
Lit de manière asynchrone les valeurs des variables du contexte d'exécution actuel. La résolution des variables est cohérente avec {{ctx.xxx}} dans le SQL et les modèles, provenant généralement de l'utilisateur actuel, de l'enregistrement actuel, des paramètres de vue, du contexte de la fenêtre contextuelle (popup), etc.
Cas d'utilisation
Définition du type
Valeur de retour : Promise<any>. Utilisez await pour obtenir la valeur résolue ; retourne undefined si la variable n'existe pas.
Si un chemin ne commençant pas par
ctx.est passé, une erreur sera levée :ctx.getVar(path) expects an expression starting with "ctx.", got: "...".
Chemins de variables courants
ctx.getVarInfos()
Obtient les informations structurelles (type, titre, sous-propriétés, etc.) des variables résolvables dans le contexte actuel, facilitant l'exploration des chemins disponibles. La valeur de retour est une description statique basée sur meta et n'inclut pas les valeurs d'exécution réelles.
Définition du type
Dans la valeur de retour, chaque clé est un chemin de variable, et la valeur est l'information structurelle pour ce chemin (incluant type, title, properties, etc.).
Paramètres
Exemple
Différence avec ctx.getValue
Dans un JSField, utilisez getValue/setValue pour lire/écrire le champ actuel ; utilisez getVar pour accéder aux autres variables de contexte (telles que record, user, formValues).
Remarques
- Le chemin doit commencer par
ctx.: par exemple,ctx.record.id, sinon une erreur sera levée. - Méthode asynchrone : Vous devez utiliser
awaitpour obtenir le résultat, par exemple,const id = await ctx.getVar('ctx.record.id'). - Variable inexistante : Retourne
undefined. Vous pouvez utiliser??après le résultat pour définir une valeur par défaut :(await ctx.getVar('ctx.user.nickname')) ?? 'Invité'. - Valeurs de formulaire :
ctx.formValuesdoit être récupéré viaawait ctx.getVar('ctx.formValues'); il n'est pas directement exposé en tant quectx.formValues. Dans un contexte de formulaire, préférez utiliserctx.form.getFieldsValue()pour lire les dernières valeurs en temps réel.

