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 Pagectx.importAsync()
Next Pagectx.libs
AI翻訳通知

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

#ctx.initResource()

現在のコンテキストのリソースを初期化します。ctx.resource がまだ存在しない場合は、指定されたタイプで作成してコンテキストにバインドします。既に存在する場合は、それを直接使用します。初期化後は ctx.resource を通じてアクセスできます。

#適用シーン

通常、JSBlock(独立ブロック)のシナリオで使用されます。ほとんどのブロックやポップアップなどでは ctx.resource が事前にバインドされているため、手動で呼び出す必要はありません。JSBlock はデフォルトでリソースを持っていないため、ctx.initResource(type) を呼び出してから ctx.resource を介してデータをロードする必要があります。

#型定義

initResource(
  type: 'APIResource' | 'SingleRecordResource' | 'MultiRecordResource' | 'SQLResource'
): FlowResource;
引数型説明
typestringリソースタイプ:'APIResource'、'SingleRecordResource'、'MultiRecordResource'、'SQLResource'

戻り値:現在のコンテキスト内のリソースインスタンス(つまり ctx.resource)。

#ctx.makeResource() との違い

メソッド動作
ctx.initResource(type)ctx.resource が存在しない場合は作成してバインドし、存在する場合はそれを返します。ctx.resource が利用可能であることを保証します。
ctx.makeResource(type)新しいインスタンスを作成して返すだけで、ctx.resource には書き込みません。複数の独立したリソースが必要な場合や、一時的な使用に適しています。

#例文

#リストデータ(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>);

#単一レコード(SingleRecordResource)

ctx.initResource('SingleRecordResource');
ctx.resource.setResourceName('users');
ctx.resource.setFilterByTk(1); // 主キーを指定
await ctx.resource.refresh();
const record = ctx.resource.getData();

#データソースの指定

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

#注意事項

  • ほとんどのブロック(フォーム、テーブル、詳細など)やポップアップのシナリオでは、ctx.resource は実行環境によって事前にバインドされているため、ctx.initResource を呼び出す必要はありません。
  • JSBlock など、デフォルトでリソースがないコンテキストでのみ手動での初期化が必要です。
  • 初期化後、setResourceName(name) を呼び出してコレクションを指定し、refresh() を実行してデータをロードする必要があります。

#関連情報

  • ctx.resource — 現在のコンテキスト内のリソースインスタンス
  • ctx.makeResource() — 新しいリソースインスタンスを作成(ctx.resource にはバインドしない)
  • MultiRecordResource — 複数レコード/リスト
  • SingleRecordResource — 単一レコード
  • APIResource — 汎用 API リソース
  • SQLResource — SQL クエリリソース