logologo
Começar
Manual
Desenvolvimento
Plugins
API
Início
English
简体中文
日本語
한국어
Español
Português
Deutsch
Français
Русский
Começar
Manual
Desenvolvimento
Plugins
API
Início
logologo
Visão geral do RunJS
Importando módulos
Renderização no contêiner

Variáveis globais

window
document
navigator

ctx

ctx.blockModel
ctx.collection
ctx.collectionField
ctx.dataSource
ctx.dataSourceManager
ctx.element
ctx.exit()
ctx.exitAll()
ctx.filterManager
ctx.form
ctx.getModel()
ctx.getValue()
ctx.getVar()
ctx.i18n
ctx.importAsync()
ctx.initResource()
ctx.libs
ctx.location
ctx.logger
ctx.makeResource()
ctx.message
ctx.modal
ctx.model
ctx.notification
ctx.off()
ctx.on()
ctx.openView()
ctx.render()
ctx.request()
ctx.requireAsync()
ctx.resource
ctx.route
ctx.router
ctx.setValue()
ctx.sql
ctx.t()
ctx.view
Previous Pagectx.modal
Next Pagectx.notification
Aviso de tradução por IA

Este documento foi traduzido por IA. Para informações precisas, consulte a versão em inglês.

#ctx.model

A instância FlowModel onde o contexto de execução atual do RunJS está localizado. Serve como o ponto de entrada padrão para cenários como JSBlock, JSField e JSAction. O tipo específico varia conforme o contexto: pode ser uma subclasse como BlockModel, ActionModel ou JSEditableFieldModel.

#Cenários de uso

CenárioDescrição
JSBlockctx.model é o modelo de bloco atual. Você pode acessar resource, coleção, setProps, etc.
JSField / JSItem / JSColumnctx.model é o modelo de campo. Você pode acessar setProps, dispatchEvent, etc.
Eventos de Ação / ActionModelctx.model é o modelo de ação. Você pode ler/escrever parâmetros de etapa, disparar eventos, etc.

Dica: Se você precisar acessar o bloco pai que contém o JS atual (ex: um bloco de Formulário ou Tabela), use ctx.blockModel. Para acessar outros modelos, use ctx.getModel(uid).

#Definição de Tipo

model: FlowModel;

FlowModel é a classe base. Em tempo de execução, ela é uma instância de várias subclasses (como BlockModel, FormBlockModel, TableBlockModel, JSEditableFieldModel, ActionModel, etc.). As propriedades e métodos disponíveis dependem do tipo específico.

#Propriedades Comuns

PropriedadeTipoDescrição
uidstringIdentificador único do modelo. Pode ser usado para ctx.getModel(uid) ou vinculação de UID de pop-up.
collectionCollectionA coleção vinculada ao modelo atual (existe quando o bloco/campo está vinculado a dados).
resourceResourceInstância de recurso associada, usada para atualizar, obter linhas selecionadas, etc.
propsobjectConfiguração de UI/comportamento do modelo. Pode ser atualizada usando setProps.
subModelsRecord<string, FlowModel>Coleção de submodelos (ex: campos dentro de um formulário, colunas dentro de uma tabela).
parentFlowModelModelo pai (se houver).

#Métodos Comuns

MétodoDescrição
setProps(partialProps: any): voidAtualiza a configuração do modelo e dispara a renderização (ex: ctx.model.setProps({ loading: true })).
dispatchEvent(eventName: string, payload?: any, options?: any): Promise<any[]>Dispara um evento para o modelo, ativando fluxos de trabalho configurados nesse modelo que escutam o nome do evento. O payload opcional é passado para o manipulador do fluxo de trabalho; options.debounce permite o controle de debounce.
getStepParams?.(flowKey, stepKey)Lê os parâmetros das etapas do fluxo de configuração (usado em painéis de configurações, ações personalizadas, etc.).
setStepParams?.(flowKey, stepKey, params)Escreve os parâmetros das etapas do fluxo de configuração.

#Relação com ctx.blockModel e ctx.getModel

NecessidadeUso Recomendado
Modelo do contexto de execução atualctx.model
Bloco pai do JS atualctx.blockModel. Frequentemente usado para acessar resource, form ou coleção.
Obter qualquer modelo por UIDctx.getModel(uid) ou ctx.getModel(uid, true) (busca em todas as pilhas de visualização).

Em um JSField, ctx.model é o modelo de campo, enquanto ctx.blockModel é o bloco de Formulário ou Tabela que contém esse campo.

#Exemplos

#Atualizando o status do bloco/ação

ctx.model.setProps({ loading: true });
await doSomething();
ctx.model.setProps({ loading: false });

#Disparando eventos de modelo

// Dispara um evento para ativar um fluxo de trabalho configurado neste modelo que escuta este nome de evento
await ctx.model.dispatchEvent('remove');

// Quando um payload é fornecido, ele é passado para o ctx.inputArgs do manipulador do fluxo de trabalho
await ctx.model.dispatchEvent('customEvent', { id: 123 });

#Usando UID para vinculação de pop-up ou acesso entre modelos

const myUid = ctx.model.uid;
// Na configuração do pop-up, você pode passar openerUid: myUid para associação
const other = ctx.getModel('other-block-uid');
if (other) other.rerender?.();

#Relacionado

  • ctx.blockModel: O modelo de bloco pai onde o JS atual está localizado.
  • ctx.getModel(): Obter outros modelos por UID.