Ce document a été traduit par IA. Pour des informations précises, veuillez consulter la version anglaise.
L'instance FlowResource dans le contexte actuel, utilisée pour accéder aux données et les manipuler. Dans la plupart des blocs (formulaires, tableaux, détails, etc.) et les scénarios de fenêtres contextuelles (pop-ups), l'environnement d'exécution lie préalablement ctx.resource. Dans des scénarios comme JSBlock où il n'y a pas de ressource par défaut, vous devez d'abord appeler ctx.initResource() pour l'initialiser avant de l'utiliser via ctx.resource.
ctx.resource peut être utilisé dans n'importe quel scénario RunJS nécessitant l'accès à des données structurées (listes, enregistrements uniques, API personnalisées, SQL). Les blocs de formulaires, de tableaux, de détails et les fenêtres contextuelles sont généralement pré-liés. Pour JSBlock, JSField, JSItem, JSColumn, etc., si le chargement de données est requis, vous pouvez d'abord appeler ctx.initResource(type) puis accéder à ctx.resource.
ctx.resource est l'instance de ressource correspondante.undefined jusqu'à ce que ctx.initResource(type) soit appelé.Les méthodes exposées par les différents types de ressources (MultiRecordResource, SingleRecordResource, APIResource, SQLResource) varient légèrement. Voici les méthodes universelles ou couramment utilisées :
| Méthode | Description |
|---|---|
getData() | Récupérer les données actuelles (liste ou enregistrement unique) |
setData(value) | Définir les données locales |
refresh() | Lancer une requête avec les paramètres actuels pour rafraîchir les données |
setResourceName(name) | Définir le nom de la ressource (ex: 'users', 'users.tags') |
setFilterByTk(tk) | Définir le filtre par clé primaire (pour le get d'un enregistrement unique, etc.) |
runAction(actionName, options) | Appeler n'importe quelle action de ressource (ex: create, update) |
on(event, callback) / off(event, callback) | S'abonner/se désabonner à des événements (ex: refresh, saved) |
Spécifique à MultiRecordResource : getSelectedRows(), destroySelectedRows(), setPage(), next(), previous(), etc.
ctx.resource n'existe pas, cette méthode en crée une et la lie ; si elle existe déjà, elle renvoie l'instance existante. Cela garantit que ctx.resource est disponible.ctx.resource. Cela convient aux scénarios nécessitant plusieurs ressources indépendantes ou une utilisation temporaire.undefined et nécessite ctx.initResource.ctx.resource?.refresh(), en particulier dans des scénarios comme JSBlock où la liaison préalable peut ne pas exister.setResourceName(name) pour spécifier la collection avant de charger les données via refresh().ctx.resource