logologo
Start
Handbuch
Entwicklung
Plugins
API
Startseite
English
简体中文
日本語
한국어
Español
Português
Deutsch
Français
Русский
Start
Handbuch
Entwicklung
Plugins
API
Startseite
logologo
RunJS Übersicht
Module importieren
Rendern im Container

Globale Variablen

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
KI-Übersetzungshinweis

Dieses Dokument wurde von KI übersetzt. Für genaue Informationen lesen Sie bitte die englische Version.

#ctx.blockModel

Das übergeordnete Block-Modell (BlockModel-Instanz), in dem sich das aktuelle JS-Feld / der JS-Block befindet. In Szenarien wie JSField, JSItem und JSColumn zeigt ctx.blockModel auf den Formular-Block oder Tabellen-Block, der die aktuelle JS-Logik trägt. In einem eigenständigen JSBlock kann es null sein oder mit ctx.model übereinstimmen.

#Anwendungsbereiche

SzenarioBeschreibung
JSFieldZugriff auf form, Sammlung und resource des übergeordneten Formular-Blocks innerhalb eines Formularfeldes, um Verknüpfungen oder Validierungen zu implementieren.
JSItemZugriff auf die Ressourcen- und Sammlungsinformationen des übergeordneten Tabellen-/Formular-Blocks innerhalb eines Untertabellen-Elements.
JSColumnZugriff auf die resource (z. B. getSelectedRows) und Sammlung des übergeordneten Tabellen-Blocks innerhalb einer Tabellenspalte.
Formular-Aktionen / EreignisflussZugriff auf form für die Validierung vor dem Absenden, resource für die Aktualisierung usw.

Hinweis: ctx.blockModel ist nur in RunJS-Kontexten verfügbar, in denen ein übergeordneter Block existiert. Bei eigenständigen JSBlocks (ohne übergeordnetes Formular/Tabelle) kann es null sein. Es wird empfohlen, vor der Verwendung eine Prüfung auf Nullwerte durchzuführen.

#Typdefinition

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

Der spezifische Typ hängt vom Typ des übergeordneten Blocks ab: Formular-Blöcke sind meist FormBlockModel oder EditFormModel, während Tabellen-Blöcke meist TableBlockModel sind.

#Häufig verwendete Eigenschaften

EigenschaftTypBeschreibung
uidstringEindeutige Kennung des Block-Modells.
collectionCollectionDie an den aktuellen Block gebundene Sammlung.
resourceResourceDie vom Block verwendete Ressourcen-Instanz (SingleRecordResource / MultiRecordResource usw.).
formFormInstanceFormular-Block: Ant Design Form-Instanz, unterstützt getFieldsValue, validateFields, setFieldsValue usw.
emitterEventEmitterEreignis-Emitter, wird verwendet, um auf formValuesChange, onFieldReset usw. zu hören.

#Beziehung zu ctx.model und ctx.form

AnforderungEmpfohlene Verwendung
Übergeordneter Block des aktuellen JSctx.blockModel
Formularfelder lesen/schreibenctx.form (entspricht ctx.blockModel?.form, bequemer in Formular-Blöcken)
Modell des aktuellen Ausführungskontextsctx.model (Feld-Modell in JSField, Block-Modell in JSBlock)

In einem JSField ist ctx.model das Feld-Modell und ctx.blockModel der Formular- oder Tabellen-Block, der dieses Feld trägt; ctx.form ist normalerweise ctx.blockModel.form.

#Beispiele

#Tabelle: Ausgewählte Zeilen abrufen und verarbeiten

const rows = ctx.blockModel?.resource?.getSelectedRows?.() || [];
if (rows.length === 0) {
  ctx.message.warning('Bitte wählen Sie zuerst Daten aus');
  return;
}

#Formular-Szenario: Validieren und Aktualisieren

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

#Auf Formularänderungen hören

ctx.blockModel?.emitter?.on?.('formValuesChange', (payload) => {
  // Verknüpfung oder Neu-Rendering basierend auf den neuesten Formularwerten implementieren
});

#Block-Neu-Rendering auslösen

ctx.blockModel?.rerender?.();

#Hinweise

  • In einem eigenständigen JSBlock (ohne übergeordneten Formular- oder Tabellen-Block) kann ctx.blockModel den Wert null haben. Es wird empfohlen, beim Zugriff auf seine Eigenschaften die optionale Verkettung (Optional Chaining) zu verwenden: ctx.blockModel?.resource?.refresh?.().
  • In JSField / JSItem / JSColumn bezieht sich ctx.blockModel auf den Formular- oder Tabellen-Block, der das aktuelle Feld trägt. In einem JSBlock kann es sich um sich selbst oder einen übergeordneten Block handeln, abhängig von der tatsächlichen Hierarchie.
  • resource existiert nur in Daten-Blöcken; form existiert nur in Formular-Blöcken. Tabellen-Blöcke haben normalerweise kein form.

#Verwandte Themen

  • ctx.model: Das Modell des aktuellen Ausführungskontexts.
  • ctx.form: Formular-Instanz, häufig in Formular-Blöcken verwendet.
  • ctx.resource: Ressourcen-Instanz (entspricht ctx.blockModel?.resource, direkt verwenden, falls verfügbar).
  • ctx.getModel(): Andere Block-Modelle anhand der UID abrufen.