コンポーネントの初期化時のアクションの呼び出し
コンポーネントを構築してから表示するまでの間にコンポーネントを更新したり、イベントを起動したりできます。
コンポーネントのソース
1swfobject.registerObject("clippy.codeblock-0", "9");
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17<aura:component>
18 <aura:attribute name="setMeOnInit" type="String" default="default value" />
19 <aura:handler name="init" value="{!this}" action="{!c.doInit}"/>
20
21 <p>This value is set in the controller after the component initializes and before rendering.</p>
22 <p><b>{!v.setMeOnInit}</b></p>
23
24</aura:component>
25クライアント側コントローラのソース
1swfobject.registerObject("clippy.codeblock-1", "9");
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17({
18 doInit: function(cmp) {
19 // Set the attribute value.
20 // You could also fire an event here instead.
21 cmp.set("v.setMeOnInit", "controller init magic!");
22 }
23})
24コンポーネントのソースを見て、どのように機能するのかを確認しましょう。重要なのは次の行です。
1swfobject.registerObject("clippy.codeblock-2", "9");
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17<aura:handler name="init" value="{!this}" action="{!c.doInit}"/>これで、コンポーネントの init イベントハンドラが登録されます。init は、すべてのコンポーネントに送信される定義済みイベントです。コンポーネントが初期化されたら、コンポーネントのコントローラで doInit アクションがコールされます。このサンプルでは、コントローラアクションで属性値を設定していますが、イベントの起動などの処理を実行することもできます。
value="{!this}" を設定すると、これ自体が値のイベントとしてマークされます。init イベントでは、常にこの設定を使用する必要があります。