Ce document a été traduit par IA. Pour des informations précises, veuillez consulter la version anglaise.
L'instance de collection associée au contexte d'exécution RunJS actuel, utilisée pour accéder aux métadonnées de la collection, aux définitions de champs, aux clés primaires et à d'autres configurations. Elle provient généralement de ctx.blockModel.collection ou ctx.collectionField?.collection.
| Scénario | Description |
|---|---|
| JSBlock | La collection liée au bloc ; permet d'accéder à name, getFields, filterTargetKey, etc. |
| JSField / JSItem / JSColumn | La collection à laquelle appartient le champ actuel (ou la collection du bloc parent), utilisée pour récupérer les listes de champs, les clés primaires, etc. |
| Colonne de tableau / Bloc de détails | Utilisé pour le rendu basé sur la structure de la collection ou pour passer filterByTk lors de l'ouverture de fenêtres contextuelles. |
Remarque :
ctx.collectionest disponible dans les scénarios où un bloc de données, un bloc de formulaire ou un bloc de tableau est lié à une collection. Dans un JSBlock indépendant non lié à une collection, il peut êtrenull. Il est recommandé d'effectuer une vérification de valeur nulle avant utilisation.
| Propriété | Type | Description |
|---|---|---|
name | string | Nom de la collection (ex: users, orders) |
title | string | Titre de la collection (inclut l'internationalisation) |
filterTargetKey | string | string[] | Nom du champ de la clé primaire, utilisé pour filterByTk et getFilterByTK |
dataSourceKey | string | Clé de la source de données (ex: main) |
dataSource | DataSource | L'instance de la source de données à laquelle elle appartient |
template | string | Modèle de collection (ex: general, file, tree) |
titleableFields | CollectionField[] | Liste des champs pouvant être affichés comme titres |
titleCollectionField | CollectionField | L'instance du champ de titre |
| Méthode | Description |
|---|---|
getFields(): CollectionField[] | Récupérer tous les champs (y compris ceux hérités) |
getField(name: string): CollectionField | undefined | Récupérer un seul champ par son nom |
getFieldByPath(path: string): CollectionField | undefined | Récupérer un champ par son chemin (prend en charge les associations, ex: user.name) |
getAssociationFields(types?): CollectionField[] | Récupérer les champs d'association ; types peut être ['one'], ['many'], etc. |
getFilterByTK(record): any | Extraire la valeur de la clé primaire d'un enregistrement, utilisé pour le filterByTk de l'API |
| Besoin | Usage recommandé |
|---|---|
| Collection associée au contexte actuel | ctx.collection (équivalent à ctx.blockModel?.collection ou ctx.collectionField?.collection) |
| Définition de la collection du champ actuel | ctx.collectionField?.collection (la collection à laquelle appartient le champ) |
| Collection cible de l'association | ctx.collectionField?.targetCollection (la collection cible d'un champ d'association) |
Dans des scénarios tels que les sous-tableaux, ctx.collection peut être la collection cible de l'association ; dans les formulaires ou tableaux standards, il s'agit généralement de la collection liée au bloc.
filterTargetKey est le nom du champ de la clé primaire de la collection. Certaines collections peuvent utiliser une clé primaire composée string[]. Si elle n'est pas configurée, 'id' est couramment utilisé par défaut.ctx.collection peut pointer vers la collection cible de l'association, ce qui diffère de ctx.blockModel.collection.getFields() fusionne les champs des collections héritées ; les champs locaux remplacent les champs hérités portant le même nom.collectioncollection