Este documento ha sido traducido por IA. Para información precisa, consulte la versión en inglés.
La instancia de la fuente de datos (DataSource) vinculada al contexto de ejecución actual de RunJS, utilizada para acceder a colecciones, metadatos de campos y gestionar la configuración de colecciones dentro de la fuente de datos actual. Generalmente corresponde a la fuente de datos seleccionada para la página o bloque actual (por ejemplo, la base de datos principal main).
| Escenario | Descripción |
|---|---|
| Operaciones de una sola fuente de datos | Obtener metadatos de colecciones y campos cuando se conoce la fuente de datos actual. |
| Gestión de colecciones | Obtener, agregar, actualizar o eliminar colecciones bajo la fuente de datos actual. |
| Obtener campos por ruta | Utilizar el formato nombreColeccion.rutaCampo para obtener definiciones de campos (soporta rutas de asociación). |
Nota:
ctx.dataSourcerepresenta una única fuente de datos para el contexto actual. Para enumerar o acceder a otras fuentes de datos, utilice ctx.dataSourceManager.
| Propiedad | Tipo | Descripción |
|---|---|---|
key | string | Clave de la fuente de datos, ej. 'main' |
name | string | Igual que la clave |
displayName | string | Nombre a mostrar (soporta i18n) |
flowEngine | FlowEngine | Instancia actual de FlowEngine |
| Método | Descripción |
|---|---|
getCollections() | Obtiene todas las colecciones bajo la fuente de datos actual (ordenadas y con las ocultas filtradas). |
getCollection(name) | Obtiene una colección por nombre; name puede ser nombreColeccion.nombreCampo para obtener la colección de destino de una asociación. |
getAssociation(associationName) | Obtiene la definición de un campo de asociación mediante nombreColeccion.nombreCampo. |
getCollectionField(fieldPath) | Obtiene la definición de un campo mediante nombreColeccion.rutaCampo, soportando rutas de asociación como users.profile.avatar. |
| Requisito | Uso recomendado |
|---|---|
| Fuente de datos única vinculada al contexto actual | ctx.dataSource |
| Punto de entrada para todas las fuentes de datos | ctx.dataSourceManager |
| Obtener colección dentro de la fuente de datos actual | ctx.dataSource.getCollection(name) |
| Obtener colección entre diferentes fuentes de datos | ctx.dataSourceManager.getCollection(dataSourceKey, collectionName) |
| Obtener campo dentro de la fuente de datos actual | ctx.dataSource.getCollectionField('users.profile.avatar') |
| Obtener campo entre diferentes fuentes de datos | ctx.dataSourceManager.getCollectionField('main.users.profile.avatar') |
getCollectionField(fieldPath) es nombreColeccion.rutaCampo, donde el primer segmento es el nombre de la colección y los segmentos posteriores son la ruta del campo (soporta asociaciones, ej. user.name).getCollection(name) soporta el formato nombreColeccion.nombreCampo, devolviendo la colección de destino del campo de asociación.ctx.dataSource suele estar determinado por la fuente de datos del bloque o página actual. Si no hay una fuente de datos vinculada al contexto, puede ser undefined; se recomienda realizar una comprobación de nulidad antes de su uso.