このドキュメントはAIによって翻訳されました。正確な情報については英語版をご参照ください。
現在アクティブなビューコントローラー(ダイアログ、ドロワー、ポップオーバー、埋め込みエリアなど)であり、ビューレベルの情報へのアクセスや操作に使用されます。FlowViewContext によって提供され、ctx.viewer または ctx.openView を通じて開かれたビューのコンテンツ内でのみ利用可能です。
| シーン | 説明 |
|---|---|
| ダイアログ/ドロワーのコンテンツ | content 内で ctx.view.close() を呼び出して現在のビューを閉じたり、Header や Footer を使用してタイトルやフッターをレンダリングしたりします。 |
| フォーム送信後 | 送信成功後に ctx.view.close(result) を呼び出してビューを閉じ、結果を返します。 |
| JSBlock / アクション | ctx.view.type に基づいて現在のビュータイプを判断したり、ctx.view.inputArgs から渡されたパラメータを読み取ったりします。 |
| 関連選択、子テーブル | inputArgs 内の collectionName、filterByTk、parentId などを読み取ってデータロードを行います。 |
注意:
ctx.viewは、ビューコンテキストを持つ RunJS 環境(ctx.viewer.dialog()の content 内、ダイアログフォーム、関連セレクター内部など)でのみ利用可能です。通常のページやバックエンドのコンテキストではundefinedになるため、使用時にはオプショナルチェイニング(ctx.view?.close?.())によるチェックを推奨します。
| プロパティ/メソッド | 型 | 説明 |
|---|---|---|
type | 'drawer' | 'popover' | 'dialog' | 'embed' | 現在のビュータイプ |
inputArgs | Record<string, any> | ビューを開く際に渡されたパラメータ(詳細は後述) |
Header | React.FC | null | ヘッダーコンポーネント。タイトルや操作エリアのレンダリングに使用 |
Footer | React.FC | null | フッターコンポーネント。ボタンなどのレンダリングに使用 |
close(result?, force?) | void | 現在のビューを閉じます。result を渡して呼び出し元に結果を返せます |
update(newConfig) | void | ビューの設定(幅やタイトルなど)を更新します |
navigation | ViewNavigation | undefined | ページ内ビューナビゲーション(タブ切り替えなどを含む) |
現在、
HeaderとFooterをサポートしているのはdialogとdrawerのみです。
ビューを開くシーンによって inputArgs のフィールドは異なります。主なものは以下の通りです:
| フィールド | 説明 |
|---|---|
viewUid | ビュー UID |
collectionName | コレクション名 |
filterByTk | 主キーフィルター(単一レコード詳細用) |
parentId | 親 ID(関連シーン用) |
sourceId | ソースレコード ID |
parentItem | 親アイテムのデータ |
scene | シーン(create、edit、select など) |
onChange | 選択または変更後のコールバック |
tabUid | 現在のタブ UID(ページ内) |
ctx.getVar('ctx.view.inputArgs.xxx') または ctx.view.inputArgs.xxx を通じてアクセスします。
| 用途 | 推奨される使い方 |
|---|---|
| 新しいビューを開く | ctx.viewer.dialog() / ctx.viewer.drawer() または ctx.openView() |
| 現在のビューを操作する | ctx.view.close()、ctx.view.update() |
| 開く際のパラメータを取得する | ctx.view.inputArgs |
ctx.viewer はビューを「開く」役割を担い、ctx.view は「現在」のビューインスタンスを表します。ctx.openView は設定済みのワークフロービューを開くために使用されます。
ctx.view はビュー内部でのみ利用可能です。通常のページでは undefined になります。ctx.view?.close?.() のようにオプショナルチェイニングを使用してください。close(result) で渡された result は、ctx.viewer.open() が返す Promise に渡されます。
ctx.viewerはdialog()、drawer()、popover()、embed()などのメソッドを提供してビューを開きます。これらのメソッドで開かれたcontent内でctx.viewにアクセスできます。