Este documento ha sido traducido por IA. Para información precisa, consulte la versión en inglés.
La instancia de FlowResource en el contexto actual, utilizada para acceder y operar con datos. En la mayoría de los bloques (formularios, tablas, detalles, etc.) y escenarios de ventanas emergentes, el entorno de ejecución vincula previamente ctx.resource. En escenarios como JSBlock, donde no hay un recurso por defecto, primero debe llamar a ctx.initResource() para inicializarlo antes de usarlo a través de ctx.resource.
Puede utilizar ctx.resource en cualquier escenario de RunJS que requiera acceso a datos estructurados (listas, registros únicos, APIs personalizadas, SQL). Los bloques de formulario, tabla, detalles y ventanas emergentes suelen estar vinculados previamente. Para JSBlock, JSField, JSItem, JSColumn, etc., si se requiere la carga de datos, puede llamar primero a ctx.initResource(type) y luego acceder a ctx.resource.
ctx.resource es la instancia del recurso correspondiente.undefined hasta que se llama a ctx.initResource(type).Los métodos expuestos por los diferentes tipos de recursos (MultiRecordResource, SingleRecordResource, APIResource, SQLResource) varían ligeramente. A continuación se presentan los métodos universales o de uso frecuente:
| Método | Descripción |
|---|---|
getData() | Obtiene los datos actuales (lista o registro único) |
setData(value) | Establece los datos locales |
refresh() | Inicia una solicitud con los parámetros actuales para actualizar los datos |
setResourceName(name) | Establece el nombre del recurso (por ejemplo, 'users', 'users.tags') |
setFilterByTk(tk) | Establece el filtro por clave primaria (para get de registro único, etc.) |
runAction(actionName, options) | Llama a cualquier acción del recurso (por ejemplo, create, update) |
on(event, callback) / off(event, callback) | Suscribirse/cancelar suscripción a eventos (por ejemplo, refresh, saved) |
Específicos de MultiRecordResource: getSelectedRows(), destroySelectedRows(), setPage(), next(), previous(), etc.
ctx.resource no existe, lo crea y lo vincula; si ya existe, devuelve la instancia existente. Esto garantiza que ctx.resource esté disponible.ctx.resource. Es adecuado para escenarios que requieren múltiples recursos independientes o un uso temporal.undefined y requiere ctx.initResource.ctx.resource?.refresh(), especialmente en escenarios como JSBlock donde la vinculación previa podría no existir.setResourceName(name) para especificar la colección antes de cargar los datos mediante refresh().ctx.resource