Este documento foi traduzido por IA. Para informações precisas, consulte a versão em inglês.
Lê valores de variáveis do contexto de execução atual de forma assíncrona. A resolução de variáveis é consistente com a de {{ctx.xxx}} em SQL e templates, geralmente originada do usuário atual, registro atual, parâmetros de visualização, contexto de popups, etc.
| Cenário | Descrição |
|---|---|
| JSBlock / JSField | Obter informações sobre o registro atual, usuário, recurso, etc., para renderização ou lógica. |
| Regras de Ligação / Fluxo de Eventos | Ler ctx.record, ctx.formValues, etc., para lógica condicional. |
| Fórmulas / Templates | Usa as mesmas regras de resolução de variáveis que {{ctx.xxx}}. |
| Parâmetro | Tipo | Descrição |
|---|---|---|
path | string | Caminho da variável; deve começar com ctx.. Suporta notação de ponto e índices de array. |
Valor de Retorno: Promise<any>. Use await para obter o valor resolvido; retorna undefined se a variável não existir.
Se for passado um caminho que não comece com
ctx., um erro será lançado:ctx.getVar(path) expects an expression starting with "ctx.", got: "...".
| Caminho | Descrição |
|---|---|
ctx.record | Registro atual (disponível quando um bloco de formulário/detalhes está vinculado a um registro) |
ctx.record.id | Chave primária do registro atual |
ctx.formValues | Valores atuais do formulário (comumente usados em regras de ligação e fluxos de eventos; em cenários de formulário, prefira ctx.form.getFieldsValue() para leitura em tempo real) |
ctx.user | Usuário logado no momento |
ctx.user.id | ID do usuário atual |
ctx.user.nickname | Apelido do usuário atual |
ctx.user.roles.name | Nomes das funções (roles) do usuário atual (array) |
ctx.popup.record | Registro dentro de um popup |
ctx.popup.record.id | Chave primária do registro dentro de um popup |
ctx.urlSearchParams | Parâmetros de consulta da URL (analisados a partir de ?key=value) |
ctx.token | Token de API atual |
ctx.role | Função (role) atual |
Obtém as informações estruturais (tipo, título, subpropriedades, etc.) das variáveis resolvíveis no contexto atual, facilitando a exploração dos caminhos disponíveis. O valor de retorno é uma descrição estática baseada em meta e não inclui valores reais de execução.
No valor de retorno, cada chave é um caminho de variável e o valor são as informações estruturais para esse caminho (incluindo type, title, properties, etc.).
| Parâmetro | Tipo | Descrição |
|---|---|---|
path | string | string[] | Caminho de truncamento; coleta apenas a estrutura da variável sob este caminho. Suporta 'record', 'record.id', 'ctx.record', '{{ ctx.record }}'; um array representa a fusão de múltiplos caminhos. |
maxDepth | number | Profundidade máxima de expansão, o padrão é 3. Quando path não é fornecido, as propriedades de nível superior têm depth=1. Quando path é fornecido, o nó correspondente ao caminho tem depth=1. |
| Método | Cenário | Descrição |
|---|---|---|
ctx.getValue() | Campos editáveis como JSField ou JSItem | Obtém de forma síncrona o valor do campo atual; requer vinculação ao formulário. |
ctx.getVar(path) | Qualquer contexto RunJS | Obtém de forma assíncrona qualquer variável ctx; o caminho deve começar com ctx.. |
Em um JSField, use getValue/setValue para ler/escrever no campo atual; use getVar para acessar outras variáveis de contexto (como record, user, formValues).
ctx.: por exemplo, ctx.record.id, caso contrário, um erro será lançado.await para obter o resultado, por exemplo, const id = await ctx.getVar('ctx.record.id').undefined. Você pode usar ?? após o resultado para definir um valor padrão: (await ctx.getVar('ctx.user.nickname')) ?? 'Visitante'.ctx.formValues deve ser recuperado via await ctx.getVar('ctx.formValues'); ele não é exposto diretamente como ctx.formValues. No contexto de um formulário, prefira usar ctx.form.getFieldsValue() para ler os valores mais recentes em tempo real.ctx.form.getFieldsValue() pode ler valores do formulário em tempo real{{ctx.xxx}} em SQL / Templates - Usa as mesmas regras de resolução que ctx.getVar('ctx.xxx')