フレームワークのライフサイクル外のコンポーネントの変更
$A.run() を使用して、通常の表示ライフサイクル外のコンポーネントを変更するコードをラップします。$A.run() コールは、フレームワークが変更されたコンポーネントを確実に表示し、すべてのエンキューされたアクションが処理されるようにします。
コードがフレームワークのコールスタックの一部として実行される場合は、$A.run() を使用する必要はありません。たとえば、コードがイベントを処理している場合や、クライアント側のコントローラアクションのコールバックにある場合です。
$A.run() を使用する必要がある場合の例として、イベントハンドラで window.setTimeout() をコールして、一部のロジックを遅延実行する場合が挙げられます。この場合は、コードがフレームワークのコールスタック外に配置されます。
次のサンプルでは、5 秒の遅延後に、コンポーネントの visible 属性を true に設定します。
1swfobject.registerObject("clippy.codeblock-0", "9");
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17window.setTimeout(function () {
18 $A.run(function() {
19 if (cmp.isValid()) {
20 cmp.set("v.visible", true);
21 }
22 });
23}, 5000);フレームワークが変更されたコンポーネントを確実に表示するようにする $A.run() で、コンポーネントの属性を更新するコードがどのようにラップされているかに注意します。