Este documento ha sido traducido por IA. Para información precisa, consulte la versión en inglés.
Un recurso (Resource) orientado a colecciones: las solicitudes devuelven un arreglo y soportan paginación, filtrado, ordenamiento y operaciones CRUD. Es adecuado para escenarios de "múltiples registros" como tablas y listas. A diferencia de APIResource, MultiRecordResource especifica el nombre del recurso a través de setResourceName(), construye automáticamente URLs como users:list y users:create, e incluye capacidades integradas para paginación, filtrado y selección de filas.
Herencia: FlowResource → APIResource → BaseRecordResource → MultiRecordResource.
Formas de creación: ctx.makeResource('MultiRecordResource') o ctx.initResource('MultiRecordResource'). Antes de usarlo, debe llamar a setResourceName('nombreDeLaColección') (por ejemplo, 'users'); en RunJS, ctx.api es inyectado por el entorno de ejecución.
| Escenario | Descripción |
|---|---|
| Bloques de tabla | Los bloques de tabla y lista utilizan MultiRecordResource por defecto, soportando paginación, filtrado y ordenamiento. |
| Listas en JSBlock | Cargue datos de colecciones como usuarios o pedidos en un JSBlock y realice un renderizado personalizado. |
| Operaciones masivas | Use getSelectedRows() para obtener las filas seleccionadas y destroySelectedRows() para la eliminación masiva. |
| Recursos de asociación | Cargue colecciones asociadas usando formatos como users.tags, lo cual requiere setSourceId(idDelRegistroPadre). |
getData() devuelve un arreglo de registros, que corresponde al campo data de la respuesta de la API de lista.getMeta() devuelve metadatos de paginación y otros: page, pageSize, count, totalPage, etc.| Método | Descripción |
|---|---|
setResourceName(name) / getResourceName() | El nombre del recurso, por ejemplo, 'users', 'users.tags' (recurso de asociación). |
setSourceId(id) / getSourceId() | El ID del registro padre para recursos de asociación (por ejemplo, para users.tags, pase la clave primaria del usuario). |
setDataSourceKey(key) / getDataSourceKey() | Identificador de la fuente de datos (utilizado en escenarios de múltiples fuentes de datos). |
| Método | Descripción |
|---|---|
setFilterByTk(tk) / getFilterByTk() | Filtrar por clave primaria (para get de un solo registro, etc.). |
setFilter(filter) / getFilter() / resetFilter() | Condiciones de filtrado, soportando operadores como $eq, $ne, $in, etc. |
addFilterGroup(key, filter) / removeFilterGroup(key) | Grupos de filtros (para combinar múltiples condiciones). |
setFields(fields) / getFields() | Campos solicitados (lista blanca). |
setSort(sort) / getSort() | Ordenamiento, por ejemplo, ['-createdAt'] para orden descendente por fecha de creación. |
setAppends(appends) / getAppends() / addAppends / removeAppends | Carga de asociaciones (por ejemplo, ['user', 'tags']). |
| Método | Descripción |
|---|---|
setPage(page) / getPage() | Página actual (comenzando desde 1). |
setPageSize(size) / getPageSize() | Número de elementos por página, por defecto es 20. |
getTotalPage() | Número total de páginas. |
getCount() | Número total de registros (proveniente de los metadatos del servidor). |
next() / previous() / goto(page) | Cambiar de página y activar refresh. |
| Método | Descripción |
|---|---|
setSelectedRows(rows) / getSelectedRows() | Datos de las filas actualmente seleccionadas, utilizados para eliminación masiva y otras operaciones. |
| Método | Descripción |
|---|---|
refresh() | Solicita la lista con los parámetros actuales, actualiza getData() y los metadatos de paginación, y activa el evento 'refresh'. |
get(filterByTk) | Solicita un solo registro y lo devuelve (no escribe en getData). |
create(data, options?) | Crea un registro. La opción { refresh: false } evita la actualización automática. Activa 'saved'. |
update(filterByTk, data, options?) | Actualiza un registro mediante su clave primaria. |
destroy(target) | Elimina registros; target puede ser una clave primaria, un objeto de fila o un arreglo de claves primarias/objetos de fila (eliminación masiva). |
destroySelectedRows() | Elimina las filas actualmente seleccionadas (lanza un error si no hay ninguna seleccionada). |
setItem(index, item) | Reemplaza localmente una fila específica de datos (no inicia una solicitud). |
runAction(actionName, options) | Llama a cualquier acción del recurso (por ejemplo, acciones personalizadas). |
| Método | Descripción |
|---|---|
setRefreshAction(name) | La acción llamada durante la actualización, por defecto es 'list'. |
setCreateActionOptions(options) / setUpdateActionOptions(options) | Configuración de la solicitud para crear/actualizar. |
on('refresh', fn) / on('saved', fn) | Se activa tras completar la actualización o después de guardar. |
setResourceName('nombreDeLaColección') antes de su uso, de lo contrario, no se podrá construir la URL de la solicitud.padre.hijo (por ejemplo, users.tags), debe llamar primero a setSourceId(clavePrimariaPadre).refresh() dentro del mismo ciclo de eventos solo ejecutarán la última para evitar solicitudes redundantes.getData() devuelve este arreglo directamente.