Article information
RevisionsShow article in Markdown
Help us understand the problem. What are the problem?

More than 1 year has passed since last update.

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

posted at

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

何がわかる

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

記載のコード

クライアント側

サーバ繋ぐクラスの指定
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/

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
Sign upLogin
Article information
RevisionsShow article in Markdown
Help us understand the problem. What are the problem?