Este documento foi traduzido por IA. Para informações precisas, consulte a versão em inglês.
A instância FlowResource no contexto atual, usada para acessar e operar dados. Na maioria dos blocos (Formulários, Tabelas, Detalhes, etc.) e cenários de pop-up, o ambiente de execução pré-vincula o ctx.resource. Em cenários como JSBlock, onde não há um recurso por padrão, você deve primeiro chamar ctx.initResource() para inicializá-lo antes de usá-lo via ctx.resource.
O ctx.resource pode ser usado em qualquer cenário RunJS que exija acesso a dados estruturados (listas, registros únicos, APIs personalizadas, SQL). Blocos de Formulário, Tabela, Detalhes e pop-ups geralmente já estão pré-vinculados. Para JSBlock, JSField, JSItem, JSColumn, etc., se o carregamento de dados for necessário, você pode chamar ctx.initResource(type) primeiro e depois acessar ctx.resource.
ctx.resource é a instância do recurso correspondente.undefined até que ctx.initResource(type) seja chamado.Os métodos expostos por diferentes tipos de recursos (MultiRecordResource, SingleRecordResource, APIResource, SQLResource) variam ligeiramente. Abaixo estão os métodos universais ou comumente usados:
| Método | Descrição |
|---|---|
getData() | Obtém os dados atuais (lista ou registro único) |
setData(value) | Define dados locais |
refresh() | Inicia uma requisição com os parâmetros atuais para atualizar os dados |
setResourceName(name) | Define o nome do recurso (ex: 'users', 'users.tags') |
setFilterByTk(tk) | Define o filtro por chave primária (para get de registro único, etc.) |
runAction(actionName, options) | Chama qualquer ação do recurso (ex: create, update) |
on(event, callback) / off(event, callback) | Inscreve/cancela a inscrição em eventos (ex: refresh, saved) |
Específicos de MultiRecordResource: getSelectedRows(), destroySelectedRows(), setPage(), next(), previous(), etc.
ctx.resource não existir, ele cria e vincula um; se já existir, retorna a instância existente. Isso garante que o ctx.resource esteja disponível.ctx.resource. Isso é adequado para cenários que exigem múltiplos recursos independentes ou uso temporário.undefined e exigirá ctx.initResource.ctx.resource?.refresh(), especialmente em cenários como JSBlock onde a pré-vinculação pode não existir.setResourceName(name) para especificar a coleção antes de carregar os dados via refresh().ctx.resource