アプリケーションイベント

カスタムアプリケーションイベントを作成する
カスタムアプリケーションイベントは、.evt リソースの <aura:event> タグを使用して作成できます。イベントには、そのイベントの起動前に設定可能で、処理時に読み取り可能な属性を含められます。
アプリケーションイベントの場合は、<aura:event> タグに type="APPLICATION" を使用します。たとえば、次の docsample:appEvent アプリケーションイベントには message 属性が 1 つ設定されています。
1<!--docsample:appEvent-->
2<aura:event type="APPLICATION">
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> を使用して、アプリケーションイベントを起動できるように登録します。name 属性は必須ですが、アプリケーションイベントでは使用されません。name 属性が関係するのは、コンポーネントイベントのみです。次の例では、name="appEvent" を使用していますが、この値はどこにも使用されていません。
1<aura:registerEvent name="appEvent" type="docsample:appEvent"/>アプリケーションイベントを起動する
JavaScript で $A.get("e.myNamespace:myAppEvent") を使用して、myNamespace 名前空間の myAppEvent イベントのインスタンスを取得します。fire() を使用して、イベントを起動します。
1var appEvent = $A.get("e.docsample:appEvent");
2// Optional: set some data for the event (also known as event shape)
3//appEvent.setParams({ "myParam" : myValue });
4appEvent.fire();アプリケーションイベントのソースを取得する
evt.getSource() はアプリケーションイベントでは機能せず、コンポーネントイベントでのみ機能します。
コンポーネントイベントは通常、cmp.getEvent('cmpEvent').fire() のようなコードによって起動されるため、誰がイベントを起動したかが明白です。他方、どのコンポーネントがアプリケーションイベントを起動したかはやや不明瞭です。アプリケーションイベントは、$A.get('e.docsample.appEvent').fire(); のようなコードによって起動されます。
アプリケーションイベントのソースを確認する必要がある場合は、evt.setParams() を使用して、イベントを起動する前にイベントデータにソースコンポーネントを設定します。たとえば、evt.setParams("source" : sourceCmp) を使用します。この sourceCmp はソースコンポーネントへの参照です。
アプリケーションの表示中に起動されるイベント
いくつかのイベントは、アプリケーションを表示中に起動されます。すべての init イベントは、コンポーネントまたはアプリケーションが初期化されたことを示すために起動されます。コンポーネントが別のコンポーネントまたはアプリケーションに含まれる場合は、まず内部のコンポーネントから初期化されます。表示中にサーバコールが実行された場合は、aura:waiting が起動されます。最後に、すべての表示が完了したことを示すために、aura:doneWaiting が起動されてから aura:doneRendering が起動されます。詳細は、「表示ライフサイクル中に起動されたイベント 」 を参照してください。