この文章は Salesforce 機械翻訳システムを使用して翻訳されました。詳細はこちらをご参照ください。
英語に切り替える

コンポーネントへのイベントハンドラの動的な追加

コンポーネントから起動されるイベントのハンドラを動的に追加できます。

Component コンポーネントの addEventHandler() メソッドは、廃止された addHandler() メソッドの代わりに使用されます。

コンポーネントにイベントハンドラを動的に追加するには、addEventHandler() メソッドを使用します。

event
最初の引数は、ハンドラをトリガするイベントの名前です。コンポーネントから起動しないイベントの起動開始をコンポーネントに強制することはできないため、コンポーネントから起動するイベントに、この引数が対応することを確認してください。コンポーネントのマークアップの <aura:registerEvent> タグにより、コンポーネントから起動するイベントが公開されます。
  • コンポーネントイベントの場合、<aura:registerEvent> タグの name 属性と一致するようにこの引数を設定します。
  • アプリケーションイベントの場合、namespace:eventName 形式のイベント記述子と一致するようにこの引数を設定します。
handler
2 つ目の引数は、イベントを処理するアクションです。ハンドラをマークアップで静的に定義した場合、<aura:handler> タグの action 属性に指定する値と似ています。この引数には 2 つのオプションがあります。
  • コントローラアクションを使用するには、cmp.getReference("c.actionName") 形式を使用します。
  • 匿名関数を使用するには、次の形式を使用します。

その他の引数の説明については、Aura Reference アプリケーションの「JavaScript API」 を参照してください。

$A.createComponent() のコールバック関数で動的に作成されたコンポーネントにイベントハンドラを追加することもできます。詳細は、「コンポーネントの動的な作成」を参照してください。

次のコンポーネントには、コンポーネントイベントとアプリケーションイベントを起動および処理するボタンがあります。

クライアント側コントローラを次に示します。

addEventHandler() コールの最初のパラメータに注目します。コンポーネントイベントの構文は次のようになっています。

アプリケーションイベントの構文は次のようになっています。

コンポーネントイベントまたはアプリケーションイベントでは、コントローラアクションの cmp.getReference() を使用する代わりに、匿名関数をハンドラとして使用できます。

たとえば、アプリケーションイベントハンドラは次のようになります。