logologo
Empezar
Manual
Desarrollo
Plugins
API
Inicio
English
简体中文
日本語
한국어
Español
Português
Deutsch
Français
Русский
Empezar
Manual
Desarrollo
Plugins
API
Inicio
logologo
Descripción general de RunJS
Importación de módulos
Renderizado en contenedor

Variables globales

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 traducción IA

Este documento ha sido traducido por IA. Para información precisa, consulte la versión en inglés.

#ctx.getModel()

Obtiene una instancia de modelo (como BlockModel, PageModel, ActionModel, etc.) del motor actual o de la pila de vistas basándose en el uid del modelo. Se utiliza en RunJS para acceder a otros modelos a través de bloques, páginas o ventanas emergentes.

Si solo necesita el modelo o bloque donde se encuentra el contexto de ejecución actual, priorice el uso de ctx.model o ctx.blockModel en lugar de ctx.getModel.

#Escenarios de uso

EscenarioDescripción
JSBlock / JSActionObtener modelos de otros bloques basados en un uid conocido para leer o escribir en su resource, form, setProps, etc.
RunJS en ventanas emergentesCuando necesite acceder a un modelo en la página que abrió la ventana emergente, pase searchInPreviousEngines: true.
Acciones personalizadasLocalizar formularios o submodelos en el panel de configuración por uid a través de las pilas de vistas para leer su configuración o estado.

#Definición de tipos

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

#Parámetros

ParámetroTipoDescripción
uidstringEl identificador único de la instancia del modelo objetivo, especificado durante la configuración o creación (por ejemplo, ctx.model.uid).
searchInPreviousEnginesbooleanOpcional, por defecto es false. Cuando es true, busca desde el motor actual hacia arriba hasta la raíz en la "pila de vistas", permitiendo el acceso a modelos en motores de nivel superior (por ejemplo, la página que abrió una ventana emergente).

#Valor de retorno

  • Devuelve la instancia de la subclase FlowModel correspondiente (por ejemplo, BlockModel, FormBlockModel, ActionModel) si se encuentra.
  • Devuelve undefined si no se encuentra.

#Alcance de búsqueda

  • Por defecto (searchInPreviousEngines: false): Busca solo dentro del motor actual por uid. En ventanas emergentes o vistas de varios niveles, cada vista tiene un motor independiente; por defecto, solo busca modelos dentro de la vista actual.
  • searchInPreviousEngines: true: Busca hacia arriba a lo largo de la cadena previousEngine comenzando desde el motor actual, devolviendo la primera coincidencia. Esto es útil para acceder a un modelo en la página que abrió la ventana emergente actual.

#Ejemplos

#Obtener otro bloque y refrescar

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

#Acceder a un modelo en la página desde una ventana emergente

// Acceder a un bloque en la página que abrió la ventana emergente actual
const pageBlock = ctx.getModel('page-block-uid', true);
if (pageBlock) {
  pageBlock.rerender?.();
}

#Lectura/escritura entre modelos y activar rerender

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

#Verificación de seguridad

const model = ctx.getModel(someUid);
if (!model) {
  ctx.message.warning('El modelo objetivo no existe');
  return;
}

#Relacionado

  • ctx.model: El modelo donde se encuentra el contexto de ejecución actual.
  • ctx.blockModel: El modelo del bloque padre donde se encuentra el JS actual; generalmente accesible sin necesidad de getModel.