サーバ側のアクションのコール
クライアント側コントローラは、名前-値のペアの対応付けを含む、オブジェクトリテラル表記の JavaScript オブジェクトです。
コンポーネントからサーバコールをトリガするとします。次のコンポーネントには、クライアント側コントローラの echo アクションに接続されるボタンが含まれます。SimpleServerSideController には、クライアント側コントローラから渡される文字列を返すメソッドが含まれます。
このクライアント側コントローラには、サーバ側コントローラで serverEcho メソッドを実行する echo アクションが含まれます。
クライアント側コントローラでは、c の値プロバイダを使用してサーバ側コントローラのアクションを呼び出します。また、マークアップでこの c 構文を使用して、クライアント側コントローラのアクションも呼び出します。
cmp.get("c.serverEcho") コールは、サーバ側コントローラで serverEcho メソッドをコールしていることを示します。サーバ側コントローラのメソッド名は、クライアント側のコールの c. に続く内容と完全に一致している必要があります。この場合、それは serverEcho です。
action.setParams() を使用して、サーバ側コントローラに渡される引数を設定します。次のコールは、firstName 属性値に基づいて、サーバ側コントローラの serverEcho メソッドで firstName 引数の値を設定します。
action.setCallback() は、サーバ側のアクションが返されたら呼び出されるコールバックアクションを設定します。
サーバ側のアクションの結果は、コールバックの引数である response 変数に格納されます。
response.getState() は、サーバから返されたアクションの状態を取得します。
response.getReturnValue() は、サーバから返された値を取得します。この例では、コールバック関数がユーザにサーバから返された値を含むアラートを表示します。
$A.enqueueAction(action) により、サーバ側コントローラのアクションがアクション実行キューに追加されます。キューに追加されたアクションはすべて、イベントループの最後に実行されます。フレームワークでは、個々のアクションごとに個別の要求を送信するのではなく、イベントチェーンを処理し、キューのアクションを 1 つの要求にまとめます。これらのアクションは非同期で、コールバックが設定されます。
アクションの状態
アクションの有効な状態は次のとおりです。
- NEW (新規)
- アクションが作成されていますが、まだ処理されていません。
- RUNNING (実行中)
- アクションを処理中です。
- SUCCESS (成功)
- アクションが正常に実行されました。
- ERROR (エラー)
- サーバからエラーが返されました。
- INCOMPLETE (未完了)
- サーバから応答が返されませんでした。サーバがダウンしているか、クライアントがオフラインである可能性があります。フレームワークは、コンポーネントが有効である限り、アクションのコールバックが常に呼び出されることを保証します。サーバへのソケットが一度も正常に開いていない場合や突然閉じた場合、または他のネットワークエラーが生じた場合は、XHR が解決され、状態が INCOMPLETE のコールバックが呼び出されます。
- ABORTED (中止)
- アクションが中止されました。このアクション状態は非推奨です。中止されたアククションのコールバックが実行されることはないため、この状態を処理する術はありません。