イベントハンドラの動的な追加
コンポーネントから起動されるイベントのハンドラを動的に追加できます。コンポーネントは、クライアント側で動的に作成することも、実行時にサーバから取得することもできます。
次のサンプルコードでは、イベントハンドラを docsample:sampleComponent のインスタンスに追加します。
1swfobject.registerObject("clippy.codeblock-0", "9");
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17addNewHandler : function(cmp, event) {
18 var cmpArr = cmp.find({ instancesOf : "docsample:sampleComponent" });
19 for (var i = 0; i < cmpArr.length; i++) {
20 var outputCmpArr = cmpArr[i];
21 outputCmpArr.addHandler("someAction", cmp, "c.someAction");
22 }
23}$A.createComponent() のコールバック関数で動的に作成されたコンポーネントにイベントハンドラを追加することもできます。詳細は、「コンポーネントの動的な作成」を参照してください。
addHandler() により、イベントハンドラがコンポーネントに追加されます。
コンポーネントから起動しないイベントを、強制的に起動することはできません。c.someAction は、コンポーネントの階層の 1 つのコントローラに含まれるアクションです。someAction はイベント名、cmp は値の取得元を参照します。someAction は、aura:registerEvent タグや aura:handler タグの name 属性の値と一致している必要があります。メソッドおよび引数の完全なリストについては、JavaScript API リファレンスを参照してください。