コンポーネントイベント
カスタムコンポーネントイベントを作成する
カスタムコンポーネントイベントは、.evt リソースの <aura:event> タグを使用して作成できます。イベントには、そのイベントの起動前に設定可能で、処理時に読み取り可能な属性を含められます。
コンポーネントイベントの場合は、<aura:event> タグに type="COMPONENT" を使用します。たとえば、c:compEvent コンポーネントイベントには message 属性が 1 つ設定されています。
1<!--c:compEvent-->
2<aura:event type="COMPONENT">
3 <!-- add aura:attribute tags to define event shape.
4 One sample attribute here -->
5 <aura:attribute name="message" type="String"/>
6</aura:event>イベントを処理するコンポーネントは、イベントデータを取得できます。このイベントの属性を取得するには、ハンドラのクライアント側コントローラで event.getParam("message") をコールします。
コンポーネントイベントを登録する
コンポーネントは、マークアップに <aura:registerEvent> を使用して、イベントを起動できるように登録します。次に例を示します。
1<aura:registerEvent name="sampleComponentEvent" type="c:compEvent"/>ここでは、イベントを起動して処理する場合に name 属性の値がどのように使用されるかを確認します。
コンポーネントイベントを起動する
JavaScript でコンポーネントイベントへの参照を取得するには、getEvent("evtName") を使用します。この evtName は、<aura:registerEvent> の name 属性と一致します。fire() を使用して、コンポーネントのインスタンスからイベントを起動します。たとえば、クライアント側コントローラの次のアクション関数でイベントを起動します。
1var compEvent = cmp.getEvent("sampleComponentEvent");
2// Optional: set some data for the event (also known as event shape)
3// compEvent.setParams({"myParam" : myValue });
4compEvent.fire();コンポーネントイベントのソースを取得する
ハンドラコンポーネントで、JavaScript の evt.getSource() を使用して、どのコンポーネントがコンポーネントイベントを起動したかを確認します。ここで、evt はイベントへの参照です。ソース要素を取得するには、evt.getSource().getElement() を使用します。