logologo
Démarrer
Manuel
Développement
Plugins
API
Accueil
English
简体中文
日本語
한국어
Español
Português
Deutsch
Français
Русский
Démarrer
Manuel
Développement
Plugins
API
Accueil
logologo
Présentation de RunJS
Importation de modules
Rendu dans le conteneur

Variables globales

window
document
navigator

ctx

ctx.blockModel
ctx.collection
ctx.collectionField
ctx.dataSource
ctx.dataSourceManager
ctx.element
ctx.exit()
ctx.exitAll()
ctx.filterManager
ctx.form
ctx.getModel()
ctx.getValue()
ctx.getVar()
ctx.i18n
ctx.importAsync()
ctx.initResource()
ctx.libs
ctx.location
ctx.logger
ctx.makeResource()
ctx.message
ctx.modal
ctx.model
ctx.notification
ctx.off()
ctx.on()
ctx.openView()
ctx.render()
ctx.request()
ctx.requireAsync()
ctx.resource
ctx.route
ctx.router
ctx.setValue()
ctx.sql
ctx.t()
ctx.view
Previous Pagectx.importAsync()
Next Pagectx.libs
Avis de traduction IA

Ce document a été traduit par IA. Pour des informations précises, veuillez consulter la version anglaise.

#ctx.initResource()

Initialise la ressource pour le contexte actuel : si ctx.resource n'existe pas encore, crée une ressource du type spécifié et la lie au contexte ; si elle existe déjà, elle est utilisée directement. Par la suite, elle est accessible via ctx.resource.

#Cas d'utilisation

Généralement utilisé dans les scénarios de JSBlock (bloc indépendant). La plupart des blocs, fenêtres contextuelles et autres composants ont ctx.resource pré-lié et ne nécessitent pas d'appel manuel. JSBlock n'a pas de ressource par défaut, vous devez donc appeler ctx.initResource(type) avant de charger des données via ctx.resource.

#Définition du type

initResource(
  type: 'APIResource' | 'SingleRecordResource' | 'MultiRecordResource' | 'SQLResource'
): FlowResource;
ParamètreTypeDescription
typestringType de ressource : 'APIResource', 'SingleRecordResource', 'MultiRecordResource', 'SQLResource'

Valeur de retour : L'instance de ressource dans le contexte actuel (c'est-à-dire ctx.resource).

#Différence avec ctx.makeResource()

MéthodeComportement
ctx.initResource(type)Crée et lie si ctx.resource n'existe pas ; retourne l'instance existante si elle existe. Garantit que ctx.resource est disponible.
ctx.makeResource(type)Crée et retourne uniquement une nouvelle instance, ne l'écrit pas dans ctx.resource. Adapté aux scénarios nécessitant plusieurs ressources indépendantes ou une utilisation temporaire.

#Exemples

#Données de liste (MultiRecordResource)

ctx.initResource('MultiRecordResource');
ctx.resource.setResourceName('users');
await ctx.resource.refresh();
const rows = ctx.resource.getData();
ctx.render(<pre>{JSON.stringify(rows, null, 2)}</pre>);

#Enregistrement unique (SingleRecordResource)

ctx.initResource('SingleRecordResource');
ctx.resource.setResourceName('users');
ctx.resource.setFilterByTk(1); // Spécifier la clé primaire
await ctx.resource.refresh();
const record = ctx.resource.getData();

#Spécifier une source de données

ctx.initResource('MultiRecordResource');
ctx.resource.setDataSourceKey('main');
ctx.resource.setResourceName('orders');
await ctx.resource.refresh();

#Remarques

  • Dans la plupart des scénarios de blocs (formulaires, tableaux, détails, etc.) et des fenêtres contextuelles, ctx.resource est déjà pré-lié par l'environnement d'exécution, l'appel à ctx.initResource est donc inutile.
  • L'initialisation manuelle n'est requise que dans des contextes comme JSBlock où il n'y a pas de ressource par défaut.
  • Après l'initialisation, vous devez appeler setResourceName(name) pour spécifier la collection, puis appeler refresh() pour charger les données.

#Voir aussi

  • ctx.resource — L'instance de ressource dans le contexte actuel
  • ctx.makeResource() — Crée une nouvelle instance de ressource sans la lier à ctx.resource
  • MultiRecordResource — Enregistrements multiples / Liste
  • SingleRecordResource — Enregistrement unique
  • APIResource — Ressource API générale
  • SQLResource — Ressource de requête SQL