Este documento ha sido traducido por IA. Para información precisa, consulte la versión en inglés.
Resource orientado a un único registro: los datos consisten en un objeto individual, permitiendo la obtención por clave primaria, creación/actualización (save) y eliminación. Es adecuado para escenarios de "registro único" como bloques de detalles y formularios. A diferencia de MultiRecordResource, el método getData() de SingleRecordResource devuelve un solo objeto. Usted especifica la clave primaria mediante setFilterByTk(id), y save() llamará automáticamente a create o update basándose en el estado de isNewRecord.
Herencia: FlowResource → APIResource → BaseRecordResource → SingleRecordResource.
Formas de creación: ctx.makeResource('SingleRecordResource') o ctx.initResource('SingleRecordResource'). Debe llamar a setResourceName('nombre_de_la_colección') antes de su uso. Al realizar operaciones por clave primaria, utilice setFilterByTk(id). En RunJS, ctx.api es inyectado por el entorno de ejecución.
| Escenario | Descripción |
|---|---|
| Bloque de detalles | El bloque de detalles utiliza SingleRecordResource por defecto para cargar un único registro mediante su clave primaria. |
| Bloque de formulario | Los formularios de creación/edición utilizan SingleRecordResource, donde save() distingue automáticamente entre create y update. |
| Detalles en JSBlock | Carga un único usuario, pedido, etc., en un JSBlock y personaliza su visualización. |
| Recursos de asociación | Carga registros únicos asociados utilizando el formato users.profile, lo cual requiere el uso de setSourceId(ID_del_registro_padre). |
getData() devuelve un objeto de registro único, que corresponde al campo data de la respuesta de la API get.getMeta() devuelve metainformación (si está disponible).| Método | Descripción |
|---|---|
setResourceName(name) / getResourceName() | Nombre del recurso, por ejemplo, 'users', 'users.profile' (recurso de asociación). |
setSourceId(id) / getSourceId() | ID del registro padre para recursos de asociación (por ejemplo, users.profile requiere la clave primaria del registro de users). |
setDataSourceKey(key) / getDataSourceKey() | Identificador de la fuente de datos (utilizado en entornos con múltiples fuentes de datos). |
setFilterByTk(tk) / getFilterByTk() | Clave primaria del registro actual; una vez establecida, isNewRecord pasa a ser false. |
| Propiedad/Método | Descripción |
|---|---|
isNewRecord | Indica si se encuentra en estado de "Nuevo" (es true si no se ha establecido filterByTk o si acaba de ser creado). |
| Método | Descripción |
|---|---|
setFilter(filter) / getFilter() | Filtro (disponible cuando no está en estado "Nuevo"). |
setFields(fields) / getFields() | Campos solicitados. |
setAppends(appends) / getAppends() / addAppends / removeAppends | Carga de asociaciones (appends). |
| Método | Descripción |
|---|---|
refresh() | Realiza una solicitud get basada en el filterByTk actual y actualiza getData(); no realiza ninguna acción en estado "Nuevo". |
save(data, options?) | Llama a create cuando está en estado "Nuevo", de lo contrario llama a update; la opción { refresh: false } evita la actualización automática. |
destroy(options?) | Elimina el registro basado en el filterByTk actual y limpia los datos locales. |
runAction(actionName, options) | Llama a cualquier acción (action) del recurso. |
| Método | Descripción |
|---|---|
setSaveActionOptions(options) | Configuración de la solicitud para la acción save. |
on('refresh', fn) / on('saved', fn) | Se activa tras completar la actualización o después de guardar. |
setResourceName('nombre_de_la_colección') antes de su uso, de lo contrario no se podrá construir la URL de la solicitud.setFilterByTk, isNewRecord será true y refresh() no iniciará ninguna solicitud; save() ejecutará una acción create.padre.hijo (ej. users.profile), debe llamar primero a setSourceId(clave_primaria_padre).data devuelto por las API de registro único es un objeto de registro; getData() devuelve este objeto directamente. Se convierte en null después de ejecutar destroy().ctx.resource