logologo
スタート
マニュアル
開発
プラグイン
API
ホーム
English
简体中文
日本語
한국어
Español
Português
Deutsch
Français
Русский
スタート
マニュアル
開発
プラグイン
API
ホーム
logologo
RunJS 概要
モジュールのインポート
コンテナ内でのレンダリング

グローバル変数

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
AI翻訳通知

このドキュメントはAIによって翻訳されました。正確な情報については英語版をご参照ください。

#ctx.blockModel

現在の JS フィールド / JS ブロックが配置されている親ブロックモデル(BlockModel インスタンス)です。JSField、JSItem、JSColumn などのシナリオでは、ctx.blockModel は現在の JS ロジックを保持しているフォームブロックまたはテーブルブロックを指します。独立した JSBlock では、null になるか、ctx.model と同じになる場合があります。

#適用シーン

シーン説明
JSFieldフォームフィールド内で親フォームブロックの form、collection、resource にアクセスし、連動やバリデーションを実現します。
JSItem子テーブルの項目内で親テーブル/フォームブロックのリソースやコレクション情報にアクセスします。
JSColumnテーブル列内で親テーブルブロックの resource(例:getSelectedRows)や collection にアクセスします。
フォーム操作 / イベントフロー送信前のバリデーションのために form にアクセスしたり、リフレッシュのために resource にアクセスしたりします。

注意:ctx.blockModel は親ブロックが存在する RunJS コンテキストでのみ利用可能です。親のフォーム/テーブルがない独立した JSBlock では null になる可能性があるため、使用前に空値チェックを行うことを推奨します。

#型定義

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

具体的な型は親ブロックのタイプに依存します。フォームブロックの場合は多くが FormBlockModel や EditFormModel であり、テーブルブロックの場合は多くが TableBlockModel です。

#主要なプロパティ

プロパティ型説明
uidstringブロックモデルの一意識別子
collectionCollection現在のブロックに紐付けられたコレクション
resourceResourceブロックで使用されるリソースインスタンス(SingleRecordResource / MultiRecordResource など)
formFormInstanceフォームブロック:Ant Design の Form インスタンス。getFieldsValue、validateFields、setFieldsValue などをサポートします。
emitterEventEmitterイベントエミッター。formValuesChange や onFieldReset などを監視できます。

#ctx.model、ctx.form との関係

ニーズ推奨される使い方
現在の JS が存在する親ブロックctx.blockModel
フォームフィールドの読み書きctx.form(ctx.blockModel?.form と等価で、フォームブロック内ではより便利です)
現在の実行コンテキストにおけるモデルctx.model(JSField ではフィールドモデル、JSBlock ではブロックモデル)

JSField において、ctx.model はフィールドモデルであり、ctx.blockModel はそのフィールドを保持するフォームまたはテーブルブロックです。ctx.form は通常 ctx.blockModel.form を指します。

#例

#テーブル:選択された行を取得して処理する

const rows = ctx.blockModel?.resource?.getSelectedRows?.() || [];
if (rows.length === 0) {
  ctx.message.warning('データを選択してください');
  return;
}

#フォーム:バリデーションとリフレッシュ

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

#フォームの変化を監視する

ctx.blockModel?.emitter?.on?.('formValuesChange', (payload) => {
  // 最新のフォーム値に基づいて連動や再レンダリングを行う
});

#ブロックの再レンダリングをトリガーする

ctx.blockModel?.rerender?.();

#注意事項

  • 独立した JSBlock(親のフォーム/テーブルブロックがない場合)では、ctx.blockModel は null になる可能性があります。プロパティにアクセスする際は、オプショナルチェーン(ctx.blockModel?.resource?.refresh?.())の使用を推奨します。
  • JSField / JSItem / JSColumn では、ctx.blockModel は現在のフィールドを保持するフォームまたはテーブルブロックを指します。JSBlock では、実際の階層に応じて自身または上位のブロックを指す場合があります。
  • resource はデータブロックにのみ存在し、form はフォームブロックにのみ存在します。テーブルブロックには通常 form はありません。

#関連情報

  • ctx.model:現在の実行コンテキストにおけるモデル
  • ctx.form:フォームインスタンス(フォームブロック内で多用)
  • ctx.resource:リソースインスタンス(ctx.blockModel?.resource と等価、存在する場合は直接利用可能)
  • ctx.getModel():uid を指定して他のブロックモデルを取得