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 Pagenavigator
Next Pagectx.collection
Avis de traduction IA

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

#ctx.blockModel

Le modèle de bloc parent (instance de BlockModel) dans lequel se trouve le champ JS ou le bloc JS actuel. Dans des scénarios tels que JSField, JSItem et JSColumn, ctx.blockModel pointe vers le bloc de formulaire ou le bloc de tableau portant la logique JS actuelle. Dans un JSBlock indépendant, il peut être null ou identique à ctx.model.

#Scénarios d'utilisation

ScénarioDescription
JSFieldAccéder à form, collection et resource du bloc de formulaire parent au sein d'un champ de formulaire pour implémenter une liaison ou une validation.
JSItemAccéder aux informations de ressource et de collection du bloc de tableau/formulaire parent au sein d'un élément de sous-tableau.
JSColumnAccéder à resource (ex: getSelectedRows) et collection du bloc de tableau parent au sein d'une colonne de tableau.
Actions de formulaire / Flux de travailAccéder à form pour la validation avant soumission, resource pour le rafraîchissement, etc.

Remarque : ctx.blockModel n'est disponible que dans les contextes RunJS où un bloc parent existe. Dans les JSBlock indépendants (sans formulaire/tableau parent), il peut être null. Il est recommandé d'effectuer une vérification de valeur nulle avant utilisation.

#Définition du type

blockModel: BlockModel | FormBlockModel | TableBlockModel | CollectionBlockModel | DataBlockModel | null;

Le type spécifique dépend du type de bloc parent : les blocs de formulaire sont principalement des FormBlockModel ou EditFormModel, tandis que les blocs de tableau sont principalement des TableBlockModel.

#Propriétés courantes

PropriétéTypeDescription
uidstringIdentifiant unique du modèle de bloc.
collectionCollectionLa collection liée au bloc actuel.
resourceResourceL'instance de ressource utilisée par le bloc (SingleRecordResource / MultiRecordResource, etc.).
formFormInstanceBloc de formulaire : Instance de formulaire Ant Design, prenant en charge getFieldsValue, validateFields, setFieldsValue, etc.
emitterEventEmitterÉmetteur d'événements, utilisé pour écouter formValuesChange, onFieldReset, etc.

#Relation avec ctx.model et ctx.form

BesoinUsage recommandé
Bloc parent du JS actuelctx.blockModel
Lire/Écrire des champs de formulairectx.form (équivalent à ctx.blockModel?.form, plus pratique dans les blocs de formulaire)
Modèle du contexte d'exécution actuelctx.model (Modèle de champ dans JSField, modèle de bloc dans JSBlock)

Dans un JSField, ctx.model est le modèle de champ, et ctx.blockModel est le bloc de formulaire ou de tableau portant ce champ ; ctx.form est généralement ctx.blockModel.form.

#Exemples

#Tableau : Obtenir les lignes sélectionnées et les traiter

const rows = ctx.blockModel?.resource?.getSelectedRows?.() || [];
if (rows.length === 0) {
  ctx.message.warning('Veuillez d\'abord sélectionner des données');
  return;
}

#Scénario de formulaire : Valider et rafraîchir

if (ctx.blockModel?.form) {
  await ctx.blockModel.form.validateFields();
  await ctx.blockModel.resource?.refresh?.();
}

#Écouter les changements du formulaire

ctx.blockModel?.emitter?.on?.('formValuesChange', (payload) => {
  // Implémenter la liaison ou le rendu basé sur les dernières valeurs du formulaire
});

#Déclencher le rendu du bloc

ctx.blockModel?.rerender?.();

#Précautions

  • Dans un JSBlock indépendant (sans bloc de formulaire ou de tableau parent), ctx.blockModel peut être null. Il est recommandé d'utiliser le chaînage optionnel lors de l'accès à ses propriétés : ctx.blockModel?.resource?.refresh?.().
  • Dans JSField / JSItem / JSColumn, ctx.blockModel fait référence au bloc de formulaire ou de tableau portant le champ actuel. Dans un JSBlock, il peut s'agir de lui-même ou d'un bloc de niveau supérieur, selon la hiérarchie réelle.
  • resource n'existe que dans les blocs de données ; form n'existe que dans les blocs de formulaire. Les blocs de tableau n'ont généralement pas de form.

#Relatif à

  • ctx.model : Le modèle du contexte d'exécution actuel.
  • ctx.form : Instance de formulaire, couramment utilisée dans les blocs de formulaire.
  • ctx.resource : Instance de ressource (équivalent à ctx.blockModel?.resource, à utiliser directement si disponible).
  • ctx.getModel() : Obtenir d'autres modèles de blocs par UID.