Este documento foi traduzido por IA. Para informações precisas, consulte a versão em inglês.
A instância DataSource vinculada ao contexto de execução atual do RunJS, usada para acessar coleções, metadados de campos e gerenciar configurações de coleções dentro da fonte de dados atual. Geralmente corresponde à fonte de dados selecionada para a página ou bloco atual (por exemplo, o banco de dados principal main).
| Cenário | Descrição |
|---|---|
| Operações em fonte de dados única | Obter metadados de coleção e campo quando a fonte de dados atual é conhecida. |
| Gerenciamento de coleções | Obter, adicionar, atualizar ou excluir coleções na fonte de dados atual. |
| Obter campos por caminho | Usar o formato nomeDaColeção.caminhoDoCampo para obter definições de campo (suporta caminhos de associação). |
Observação:
ctx.dataSourcerepresenta uma única fonte de dados para o contexto atual. Para enumerar ou acessar outras fontes de dados, use ctx.dataSourceManager.
| Propriedade | Tipo | Descrição |
|---|---|---|
key | string | Chave da fonte de dados, ex: 'main' |
name | string | O mesmo que key |
displayName | string | Nome de exibição (suporta i18n) |
flowEngine | FlowEngine | Instância atual do FlowEngine |
| Método | Descrição |
|---|---|
getCollections() | Obtém todas as coleções na fonte de dados atual (ordenadas, com as ocultas filtradas). |
getCollection(name) | Obtém uma coleção por nome; name pode ser nomeDaColeção.nomeDoCampo para obter a coleção de destino de uma associação. |
getAssociation(associationName) | Obtém uma definição de campo de associação por nomeDaColeção.nomeDoCampo. |
getCollectionField(fieldPath) | Obtém uma definição de campo por nomeDaColeção.caminhoDoCampo, suportando caminhos de associação como users.profile.avatar. |
| Necessidade | Uso recomendado |
|---|---|
| Fonte de dados única vinculada ao contexto atual | ctx.dataSource |
| Ponto de entrada para todas as fontes de dados | ctx.dataSourceManager |
| Obter coleção dentro da fonte de dados atual | ctx.dataSource.getCollection(name) |
| Obter coleção entre fontes de dados | ctx.dataSourceManager.getCollection(dataSourceKey, collectionName) |
| Obter campo dentro da fonte de dados atual | ctx.dataSource.getCollectionField('users.profile.avatar') |
| Obter campo entre fontes de dados | ctx.dataSourceManager.getCollectionField('main.users.profile.avatar') |
getCollectionField(fieldPath) é nomeDaColeção.caminhoDoCampo, onde o primeiro segmento é o nome da coleção e os segmentos subsequentes são o caminho do campo (suporta associações, ex: user.name).getCollection(name) suporta o formato nomeDaColeção.nomeDoCampo, retornando a coleção de destino do campo de associação.ctx.dataSource geralmente é determinado pela fonte de dados do bloco ou página atual. Se nenhuma fonte de dados estiver vinculada ao contexto, ele pode ser undefined; recomenda-se realizar uma verificação de nulidade antes do uso.