This post is Private. Only a writer or those who know its URL can access this post.

Improve article
Show article in Markdown
Report article
Help us understand the problem. What is going on with this article?

サーバ側のアクションのコール

何がわかる

サーバ側でデータを取得し、クライアント側で表示するまでの流れを整理する

記載のコード

クライアント側

サーバ繋ぐクラスの指定
aura:component controller="SimpleServerSideController"

cmpで扱う変数の定義
aura:attribute name="firstName" type="String" default="world"

標準コンポーネント用いてボタンの配置
lightning:button label="Call server" onclick="{!c.echo}"

cmp
<aura:component controller="SimpleServerSideController">
    <aura:attribute name="firstName" type="String" default="world"/>
    <lightning:button label="Call server" onclick="{!c.echo}"/>
</aura:component>

コントローラ

severNameをkeyとして、cmp.get("v.clientName")をvalueとする

action.setParams({ severName : cmp.get("v.clientName") });

action.setCallback() は、サーバ側のアクションが返されたら呼び出されるコールバックアクションを設定します。
action.setCallback(this, function(response)
サーバ側のアクションの結果は、コールバックの引数である response 変数に格納されます。

alert("From server: " + response.getReturnValue());
response.getReturnValue() は、サーバから返された値を取得します。この例では、コールバック関数がユーザにサーバから返された値を含むアラートを表示します

({
    "echo" : function(cmp) {

        var action = cmp.get("c.serverEcho");
        action.setParams({ firstName : cmp.get("v.firstName") });

        action.setCallback(this, function(response) {
            var state = response.getState();
            if (state === "SUCCESS") {

                alert("From server: " + response.getReturnValue());
            }
            else if (state === "INCOMPLETE") {

            }
            else if (state === "ERROR") {
                var errors = response.getError();
                if (errors) {
                    if (errors[0] && errors[0].message) {
                        console.log("Error message: " + 
                                 errors[0].message);
                    }
                } else {
                    console.log("Unknown error");
                }
            }
        });

        $A.enqueueAction(action);
    }
})

APEX サーバ側

auraコンポーネント側からAPEX呼び出す時には必要な記載。
これが無いと呼び出せない。メソッドは必ずstatic。 AuraEnabled

public  class SimpleServerSideController {
    @AuraEnabled
    public static String serverEcho(String severName) {

        return ('サーバから返信しますね ');
    }
}

参考文献

setParams
http://www.jive-comp.co.jp/01jvrw/help/SetParamx83x81x83x5cx83x62x83x68.htm

コールバック関数とは??
https://sbfl.net/blog/2019/02/08/javascript-callback-func/

yujiro7029
エンジニア目指す初学者です。学んだ事をこれからプログラミングを始める方に向けて発信していきます。
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away