Este documento ha sido traducido por IA. Para información precisa, consulte la versión en inglés.
Lee de forma asíncrona el valor de una variable desde el contexto de ejecución actual. La resolución de variables es consistente con el análisis de {{ctx.xxx}} en SQL y plantillas, proviniendo generalmente del usuario actual, el registro actual, parámetros de vista, contexto de ventanas emergentes, etc.
| Escenario | Descripción |
|---|---|
| JSBlock / JSField | Obtener información sobre el registro actual, usuario, recursos, etc., para renderizado o lógica. |
| Reglas de enlace / Flujo de trabajo | Leer ctx.record, ctx.formValues, etc., para evaluar condiciones lógicas. |
| Fórmulas / Plantillas | Utiliza las mismas reglas de resolución de variables que {{ctx.xxx}}. |
| Parámetro | Tipo | Descripción |
|---|---|---|
path | string | Ruta de la variable; debe comenzar con ctx.. Admite notación de puntos e índices de arreglos. |
Valor de retorno: Promise<any>. Debe usar await para obtener el valor resuelto; devuelve undefined si la variable no existe.
Si se pasa una ruta que no comienza con
ctx., se lanzará un error:ctx.getVar(path) expects an expression starting with "ctx.", got: "...".
| Ruta | Descripción |
|---|---|
ctx.record | Registro actual (disponible cuando un bloque de formulario/detalles está vinculado a un registro) |
ctx.record.id | Clave primaria del registro actual |
ctx.formValues | Valores actuales del formulario (común en reglas de enlace y flujos de trabajo; en escenarios de formulario, se prefiere ctx.form.getFieldsValue() para lectura en tiempo real) |
ctx.user | Usuario actual con sesión iniciada |
ctx.user.id | ID del usuario actual |
ctx.user.nickname | Apodo del usuario actual |
ctx.user.roles.name | Nombres de los roles del usuario actual (arreglo) |
ctx.popup.record | Registro dentro de una ventana emergente |
ctx.popup.record.id | Clave primaria del registro dentro de una ventana emergente |
ctx.urlSearchParams | Parámetros de consulta de la URL (analizados desde ?key=value) |
ctx.token | Token de API actual |
ctx.role | Rol actual |
Obtiene la información estructural (tipo, título, subpropiedades, etc.) de las variables resolubles en el contexto actual, facilitando la exploración de las rutas disponibles. El valor devuelto es una descripción estática basada en meta y no incluye los valores reales de ejecución.
En el valor de retorno, cada clave es una ruta de variable y el valor es la información estructural de esa ruta (incluyendo type, title, properties, etc.).
| Parámetro | Tipo | Descripción |
|---|---|---|
path | string | string[] | Ruta de recorte; solo recopila la estructura de variables bajo esta ruta. Admite 'record', 'record.id', 'ctx.record', '{{ ctx.record }}'; un arreglo representa la combinación de múltiples rutas. |
maxDepth | number | Nivel máximo de expansión, por defecto 3. Cuando no se proporciona path, las propiedades de nivel superior tienen depth=1. Cuando se proporciona path, el nodo correspondiente a la ruta tiene depth=1. |
| Método | Escenario | Descripción |
|---|---|---|
ctx.getValue() | Campos editables como JSField o JSItem | Obtiene de forma síncrona el valor del campo actual; requiere vinculación al formulario. |
ctx.getVar(path) | Cualquier contexto de RunJS | Obtiene de forma asíncrona cualquier variable de ctx; la ruta debe comenzar con ctx.. |
En un JSField, use getValue/setValue para leer o escribir el campo actual; use getVar para acceder a otras variables de contexto (como record, user, formValues).
ctx.: por ejemplo, ctx.record.id, de lo contrario se lanzará un error.await para obtener el resultado, por ejemplo, const id = await ctx.getVar('ctx.record.id').undefined. Puede usar ?? después del resultado para establecer un valor predeterminado: (await ctx.getVar('ctx.user.nickname')) ?? 'Invitado'.ctx.formValues debe obtenerse mediante await ctx.getVar('ctx.formValues'); no se expone directamente como ctx.formValues. En un contexto de formulario, prefiera usar ctx.form.getFieldsValue() para leer los valores más recientes en tiempo real.ctx.form.getFieldsValue() puede leer valores del formulario en tiempo real{{ctx.xxx}} en SQL / Plantillas - Utiliza las mismas reglas de resolución que ctx.getVar('ctx.xxx')