Este documento foi traduzido por IA. Para informações precisas, consulte a versão em inglês.
Um Resource voltado para coleções (tabelas de dados): as requisições retornam um array e suportam paginação, filtragem, ordenação e operações CRUD. É adequado para cenários de "múltiplos registros", como tabelas e listas. Diferente do APIResource, o MultiRecordResource especifica o nome do recurso via setResourceName(), constrói automaticamente URLs como users:list e users:create, e possui capacidades integradas de paginação, filtragem e seleção de linhas.
Herança: FlowResource → APIResource → BaseRecordResource → MultiRecordResource.
Formas de criação: ctx.makeResource('MultiRecordResource') ou ctx.initResource('MultiRecordResource'). Antes de usar, você deve chamar setResourceName('nome_da_coleção') (ex: 'users'); no RunJS, o ctx.api é injetado pelo ambiente de execução.
| Cenário | Descrição |
|---|---|
| Blocos de Tabela | Blocos de tabela e lista usam MultiRecordResource por padrão, suportando paginação, filtragem e ordenação. |
| Listas em JSBlock | Carrega dados de coleções como usuários ou pedidos em um JSBlock para renderização personalizada. |
| Operações em lote | Usa getSelectedRows() para obter as linhas selecionadas e destroySelectedRows() para exclusão em massa. |
| Recursos de associação | Carrega coleções associadas usando formatos como users.tags, o que requer o uso de setSourceId(ID_do_registro_pai). |
getData() retorna um array de registros, que corresponde ao campo data da resposta da API de listagem.getMeta() retorna metadados de paginação e outros: page, pageSize, count, totalPage, etc.| Método | Descrição |
|---|---|
setResourceName(name) / getResourceName() | Nome do recurso, ex: 'users', 'users.tags' (recurso de associação). |
setSourceId(id) / getSourceId() | ID do registro pai para recursos de associação (ex: para users.tags, passe a chave primária do usuário). |
setDataSourceKey(key) / getDataSourceKey() | Identificador da fonte de dados (usado em cenários de múltiplas fontes de dados). |
| Método | Descrição |
|---|---|
setFilterByTk(tk) / getFilterByTk() | Filtrar pela chave primária (para get de registro único, etc.). |
setFilter(filter) / getFilter() / resetFilter() | Condições de filtro, suportando operadores como $eq, $ne, $in, etc. |
addFilterGroup(key, filter) / removeFilterGroup(key) | Grupos de filtros (para combinar múltiplas condições). |
setFields(fields) / getFields() | Campos solicitados (whitelist). |
setSort(sort) / getSort() | Ordenação, ex: ['-createdAt'] para ordem decrescente por data de criação. |
setAppends(appends) / getAppends() / addAppends / removeAppends | Carregamento de associações (ex: ['user', 'tags']). |
| Método | Descrição |
|---|---|
setPage(page) / getPage() | Página atual (começando em 1). |
setPageSize(size) / getPageSize() | Número de itens por página, o padrão é 20. |
getTotalPage() | Número total de páginas. |
getCount() | Número total de registros (vindo do meta do servidor). |
next() / previous() / goto(page) | Altera a página e aciona o refresh. |
| Método | Descrição |
|---|---|
setSelectedRows(rows) / getSelectedRows() | Dados das linhas atualmente selecionadas, usados para exclusão em massa e outras operações. |
| Método | Descrição |
|---|---|
refresh() | Solicita a lista com os parâmetros atuais, atualiza o getData() e o meta de paginação, e aciona o evento 'refresh'. |
get(filterByTk) | Solicita um único registro e o retorna (não grava no getData). |
create(data, options?) | Cria um registro. Opcional { refresh: false } evita a atualização automática. Aciona 'saved'. |
update(filterByTk, data, options?) | Atualiza um registro pela sua chave primária. |
destroy(target) | Exclui registros; target pode ser uma chave primária, um objeto de linha ou um array de chaves primárias/objetos de linha (exclusão em lote). |
destroySelectedRows() | Exclui as linhas atualmente selecionadas (lança um erro se nenhuma estiver selecionada). |
setItem(index, item) | Substitui localmente uma linha específica de dados (não inicia uma requisição). |
runAction(actionName, options) | Chama qualquer ação do recurso (ex: ações personalizadas). |
| Método | Descrição |
|---|---|
setRefreshAction(name) | A ação chamada durante o refresh, o padrão é 'list'. |
setCreateActionOptions(options) / setUpdateActionOptions(options) | Configuração da requisição para create/update. |
on('refresh', fn) / on('saved', fn) | Acionado após a conclusão do refresh ou após salvar. |
setResourceName('nome_da_coleção') antes do uso, caso contrário, a URL da requisição não poderá ser construída.pai.filho (ex: users.tags), você deve chamar setSourceId(chave_primaria_do_pai) primeiro.refresh() dentro do mesmo loop de eventos executarão apenas a última para evitar requisições redundantes.data retornado pela API de listagem é um array de registros, e getData() retorna este array diretamente.