データ変更の検出
自動的にイベントを起動する
コンポーネントのいずれかの属性値が変更されたときにクライアント側のコントローラアクションを自動的に呼び出すようにコンポーネントを設定できます。値が変更されると、valueChange.evt イベントが自動的に起動します。valueChange.evt は、value と index の 2 つの属性を取得する type="VALUE" のイベントです。
手動でイベントを起動する
別のコンポーネントおよびアプリケーションイベントは、クライアント側のコントローラの event.fire() で手動で起動します。
たとえば、コンポーネントで、name="change" のあるハンドラを定義します。
1swfobject.registerObject("clippy.codeblock-0", "9");
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17<aura:handler name="change" value="{!v.items}" action="{!c.itemsChange}"/>コンポーネントに複数の <aura:handler name="change"> タグを設定して、さまざまな属性の変更を検出できます。
コントローラで、ハンドラのアクションを定義します。
1swfobject.registerObject("clippy.codeblock-1", "9");
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17({
18 itemsChange: function(cmp, evt) {
19 var v = evt.getParam("value");
20 if (v === cmp.get("v.items")) {
21 //do something
22 }
23 }
24})change ハンドラで表されている値が変更された場合、フレームワークによってイベントの起動とコンポーネントの再表示が処理されます。詳細は、「aura:valueChange」 を参照してください。