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.form
Next Pagectx.getValue()
Aviso de tradução por IA

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

#ctx.getModel()

Obtém uma instância de modelo (como BlockModel, PageModel, ActionModel, etc.) do motor atual ou da pilha de visualização com base no uid do modelo. Isso é usado no RunJS para acessar outros modelos entre blocos, páginas ou popups.

Se você precisar apenas do modelo ou bloco onde o contexto de execução atual está localizado, priorize o uso de ctx.model ou ctx.blockModel em vez de ctx.getModel.

#Cenários de Uso

CenárioDescrição
JSBlock / JSActionObter modelos de outros blocos com base em um uid conhecido para ler ou gravar em seu resource, form, setProps, etc.
RunJS em PopupsQuando for necessário acessar um modelo na página que abriu o popup, passe searchInPreviousEngines: true.
Ações PersonalizadasLocalizar formulários ou submodelos no painel de configuração por uid através das pilhas de visualização para ler sua configuração ou estado.

#Definição de Tipo

getModel<T extends FlowModel = FlowModel>(
  uid: string,
  searchInPreviousEngines?: boolean
): T | undefined

#Parâmetros

ParâmetroTipoDescrição
uidstringO identificador único da instância do modelo de destino, especificado durante a configuração ou criação (ex: ctx.model.uid).
searchInPreviousEnginesbooleanOpcional, o padrão é false. Quando true, pesquisa do motor atual até a raiz na "pilha de visualização", permitindo o acesso a modelos em motores de nível superior (ex: a página que abriu um popup).

#Valor de Retorno

  • Retorna a instância da subclasse FlowModel correspondente (ex: BlockModel, FormBlockModel, ActionModel) se encontrada.
  • Retorna undefined se não for encontrada.

#Escopo de Pesquisa

  • Padrão (searchInPreviousEngines: false): Pesquisa apenas dentro do motor atual por uid. Em popups ou visualizações de vários níveis, cada visualização tem um motor independente; por padrão, ele pesquisa apenas modelos dentro da visualização atual.
  • searchInPreviousEngines: true: Pesquisa para cima ao longo da cadeia previousEngine começando pelo motor atual, retornando a primeira correspondência. Isso é útil para acessar um modelo na página que abriu o popup atual.

#Exemplos

#Obter outro bloco e atualizar

const block = ctx.getModel('list-block-uid');
if (block?.resource) {
  await block.resource.refresh();
}

#Acessar um modelo na página a partir de um popup

// Acessar um bloco na página que abriu o popup atual
const pageBlock = ctx.getModel('page-block-uid', true);
if (pageBlock) {
  pageBlock.rerender?.();
}

#Leitura/escrita entre modelos e acionamento de rerender

const target = ctx.getModel('other-block-uid');
if (target) {
  target.setProps({ loading: true });
  target.rerender?.();
}

#Verificação de segurança

const model = ctx.getModel(someUid);
if (!model) {
  ctx.message.warning('O modelo de destino não existe');
  return;
}

#Relacionados

  • ctx.model: O modelo onde o contexto de execução atual está localizado.
  • ctx.blockModel: O modelo do bloco pai onde o JS atual está localizado; geralmente acessível sem a necessidade de getModel.