親コンテナに送信するフラグメントまたはレイアウト・イベントの呼出し
applicationで定義されているレイアウトおよび断片は通常、親コンテナ・コンテキストを認識しません。 つまり、レイアウトまたはフラグメント内で定義されたイベントは、レイアウトまたはフラグメント・スコープ内でのみ"listenable"になります。 これらのイベントを親コンテナ(別の外部フラグメントなど)でリスニング可能にするには、親が処理できるカスタム・イベントを起動する必要があります。
「保存」ボタンを使用してフォームを定義するフラグメントの例を考えてみます。 ユーザーがフォーム・データを更新してボタンをクリックするたびに、on-clickイベントによって更新を保存するRESTコール・アクションがトリガーされます。 レイアウトまたはフラグメントの親コンテナ(たとえば、ページまたは動的コンテナ)によってイベントをリスニング可能にするには、アクション・チェーンでイベントのペイロードを親コンテナに発行するために「イベントの起動」アクションが必要です。 これにより、ページ(またはコンテナ)がこのカスタム・イベントをリスニングし、イベント・リスナーを同じイベントにバインドし、必要に応じてペイロードをさらに処理できるようになります。
ページから新しいカスタム・イベントを起動する場合は、カスタム・イベント(ページ・イベントとは異なり)がコンテナ階層を"bubbles"することに注意してください。 指定されたフローまたはページのイベント・リスナーは、コンテナの親でリスナーを探す前に実行されます。 コンテナ処理の順序は次のとおりです:
- イベントが起動されるページ
- ページを含むフロー
- フローを含むページ
- コンテナを再帰的に起動し、applicationで終了します。
親コンテナでレイアウトまたはフラグメント・イベントをリスニング可能にするには:
- ペイロードを親コンテナに発行するカスタム・イベントを作成します:
- レイアウトまたは断片「イベント」タブで、「+カスタム・イベント」をクリックします。
- イベントID (emailPreferenceSetなど)を入力し、イベントのペイロードを親コンテナに出力するオプションを選択します:
- レイアウト・イベントでは、「イベントをページに出力」を選択します。
- フラグメント・イベントでは、「イベントをコンテナに出力」を選択します。
「作成」をクリックします。
- イベントの「プロパティ」ペインで、「プロパティ」ペインの「ペイロード」の横にある「パラメータの追加」をクリックして、親コンテナに渡されるペイロードを指定します。
- ペイロード・パラメータ名を入力し、そのタイプを選択して、「作成」をクリックします。 フラグメントの例では、これはブール型のshouldEmailBeSentパラメータです:
ヒント:
フラグメント・イベントを使用する場合、「自動電信イベントID」を入力すると、親コンテナでこのイベントのリスナーを作成するプロセスが簡略化されます。 このオプションを使用すると、フラグメントを使用するページまたはレイアウトの「イベント・リスナー」タブからイベントのリスナーを作成するときに、イベントをフラグメント・イベントの下にリストできます。 「フラグメントのカスタム・イベントの親コンテナへの自動ワイヤリング」を参照してください。 - イベントの発生時にトリガーされる「イベントの起動」アクションを使用して、アクション・チェーンを作成します:
- レイアウトまたはフラグメントの「アクション・チェーン」タブに切り替えて、「+アクション・チェーン」をクリックし、IDを入力し、「作成」をクリックして新しいアクション・チェーンを作成します。 既存のアクション・チェーンを選択することもできます。
- アクション・チェーンで、Fire Eventアクションをドラッグ・アンド・ドロップします。
- 「Fireイベントのプロパティ」ペインで、起動するイベント(emailPreferenceSetなど)を選択します。
- ペイロード・パラメータの値を渡すには、「パラメータ」の下にあるshouldEmailBeSentの横にある
をクリックし、「変数」ピッカーの「入力パラメータ」の下にあるvalueを選択します。
- レイアウトまたはフラグメントを使用するページで、カスタム・イベントを処理するようにレイアウトまたはフラグメントの親コンテナを構成します:
- ページ・デザイナに移動し、コンポーネント(フラグメントなど)を選択してその「プロパティ」ペインを開き、「イベント」タブをクリックし、「+イベント・リスナー」をクリックして、推奨されるカスタム・イベント(emailPreferenceSetなど)を選択します。
- イベントが発生したときにトリガーされるアクション・チェーンを構築します。 たとえば、ユーザーがフラグメント内のスイッチを切り替えたときに通知をページに表示する場合があります。 このワークフローを示すエンド・ツー・エンドのサンプル・シナリオは、「フラグメントの親コンテナに出力するカスタム・イベントの作成」を参照してください。

