Ce document a été traduit par IA. Pour des informations précises, veuillez consulter la version anglaise.
Une ressource orientée vers un enregistrement unique : les données correspondent à un objet unique, prenant en charge la récupération par clé primaire, la création/mise à jour (save) et la suppression. Elle est adaptée aux scénarios d'"enregistrement unique" tels que les détails et les formulaires. Contrairement à MultiRecordResource, la méthode getData() de SingleRecordResource retourne un objet unique. Vous spécifiez la clé primaire via setFilterByTk(id), et save() appellera automatiquement create ou update en fonction de l'état de isNewRecord.
Hiérarchie d'héritage : FlowResource → APIResource → BaseRecordResource → SingleRecordResource.
Méthode de création : ctx.makeResource('SingleRecordResource') ou ctx.initResource('SingleRecordResource'). Vous devez appeler setResourceName('nom_de_la_collection') avant l'utilisation. Pour les opérations par clé primaire, utilisez setFilterByTk(id). Dans RunJS, ctx.api est injecté par l'environnement d'exécution.
| Scénario | Description |
|---|---|
| Bloc de détails | Le bloc de détails utilise SingleRecordResource par défaut pour charger un enregistrement unique via sa clé primaire. |
| Bloc de formulaire | Les formulaires de création/édition utilisent SingleRecordResource, où save() distingue automatiquement la création (create) de la mise à jour (update). |
| Détails JSBlock | Charger un utilisateur, une commande, etc., dans un JSBlock et personnaliser l'affichage. |
| Ressources associées | Charger des enregistrements uniques associés en utilisant le format users.profile, ce qui nécessite setSourceId(ID_enregistrement_parent). |
getData() retourne un objet d'enregistrement unique, correspondant au champ data de la réponse de l'API get.getMeta() retourne les métadonnées (si disponibles).| Méthode | Description |
|---|---|
setResourceName(name) / getResourceName() | Nom de la ressource, par ex. 'users', 'users.profile' (ressource associée). |
setSourceId(id) / getSourceId() | L'ID de l'enregistrement parent pour les ressources associées (par ex. users.profile nécessite la clé primaire de l'enregistrement users). |
setDataSourceKey(key) / getDataSourceKey() | Identifiant de la source de données (utilisé dans les environnements multi-sources). |
setFilterByTk(tk) / getFilterByTk() | La clé primaire de l'enregistrement actuel ; une fois définie, isNewRecord devient false. |
| Propriété/Méthode | Description |
|---|---|
isNewRecord | Indique s'il s'agit d'un "nouvel" enregistrement (vrai si filterByTk n'est pas défini ou s'il vient d'être créé). |
| Méthode | Description |
|---|---|
setFilter(filter) / getFilter() | Filtre (disponible lorsqu'il ne s'agit pas d'un nouvel enregistrement). |
setFields(fields) / getFields() | Champs demandés. |
setAppends(appends) / getAppends() / addAppends / removeAppends | Chargement des associations (appends). |
| Méthode | Description |
|---|---|
refresh() | Effectue une requête get basée sur le filterByTk actuel et met à jour getData() ; ne fait rien en état "nouveau". |
save(data, options?) | Appelle create en état "nouveau", sinon appelle update ; l'option { refresh: false } empêche le rafraîchissement automatique. |
destroy(options?) | Supprime l'enregistrement basé sur le filterByTk actuel et efface les données locales. |
runAction(actionName, options) | Appelle n'importe quelle action de ressource. |
| Méthode | Description |
|---|---|
setSaveActionOptions(options) | Configuration de la requête pour l'action save. |
on('refresh', fn) / on('saved', fn) | Déclenché après la fin du rafraîchissement ou après la sauvegarde. |
setResourceName('nom_de_la_collection') avant l'utilisation, sinon l'URL de la requête ne pourra pas être construite.setFilterByTk n'est pas appelé, isNewRecord est true, et refresh() n'initiera pas de requête ; save() exécutera une action create.parent.child (par ex. users.profile), vous devez d'abord appeler setSourceId(clé_primaire_parent).getData() retourne cet objet directement. Il devient null après destroy().ctx.resource