3

저는 Salesforce1 (Aura 플랫폼)에서 작업하고 있습니다. 클라이언트 쪽 (자바 스크립트)에서 서버 쪽 컨트롤러 (Apex 코드)로 값을 전달하려고합니다. JavaScript에서 setParams();을 사용하고 Apex에서 @key 주석을 사용했지만 @key은 Apex에서 지원되지 않습니다.SALESFORCE1 (AURA PLATFORM) : 클라이언트 측 코드 (JavaScript 코드)에서 APEX (Server Side-Code)로 값을 전달하는 방법은 무엇입니까?

미리 감사드립니다. 여기 샘플 코드를 제공하고

...

응용 프로그램 코드 :

 <aura:application> 
     <PlumQ:example/> 
    </aura:application> 

구성 요소 코드 :

<aura:component model="PlumQ.ExampleServerSideController"> 

    <aura:attribute name="firstName" type="String" default="HELLO worlD"/> 

    <ui:inputtext label="Name" aura:id="id1" value="{!v.firstName}" placeholder = "enter name" /> 

    <ui:button label="Native Aura Button" press="{!c.echo}"/> 

</aura:component> 

** 클라이언트 측 컨트롤러 (JAVASCRIPT) : **

({ 
    "echo" : function(component) { 

      alert('in client-Side-process'); 

      var b =component.get("v.firstName"); 
      alert('firstnaaaaame:::::::::::::'+b); 
      var a = component.get("m.serverEcho"); 
      alert('After ServerSide Process'); 
      a.setParams({ firstName : component.get("v.firstName") }); 



      a.setCallback(this, function(action) { 

         if (action.getState() === "ERROR") { 
            alert("Server Error: " + action.getError()[0].message); 
          } 
         else{ 

            alert("From server: " + action.getReturnValue()); 

         } 
}); 

      $A.enqueueAction(a); 

} })

서버 측 컨트롤러 (APEX 클래스) :

public class ExampleServerSideController { 


    @AuraEnabled 
    public static String serverEcho(@Key("firstName") String firstName){ 

    System.out.println("In Example Trival controllerrrrr"+firstName); 

    return ("From server: " +firstName); 

    } 

    } 
+0

- 또한, 당신은 아마 당신이 서명 한 계약서를 검토해야 이러한 유형의 공개 게시가 허용되도록 AotP를 입력하십시오. – daveespo

답변

0

당신은 그에 대한 @key 표기를하지 않아도, 문자열이 작동합니다.

$ A.enqueueAction (a); 내부 폐쇄는 다음과 같습니다.

({ 
    "echo" : function(component) { 

     alert('in client-Side-process'); 

     var b =component.get("v.firstName"); 
     alert('firstnaaaaame:::::::::::::'+b); 
     var a = component.get("m.serverEcho"); 
     alert('After ServerSide Process'); 
     a.setParams({ firstName : component.get("v.firstName") }); 



     a.setCallback(this, function(action) { 

        if (action.getState() === "ERROR") { 
           alert("Server Error: " + action.getError()[0].message); 
         } 
        else{ 

           alert("From server: " + action.getReturnValue()); 

        } 
     $A.enqueueAction(a); 

     } 
    }); 
1

코드가 거의 맞습니다. 주위에 따옴표 (") 만 넣고 정점 컨트롤러에서 주석을 제거하고 주석을 제거하면됩니다.

a.setParams({ 
    "firstName" : component.get("v.firstName") 
}); 

그리고 당신의 정점 : 그래서 당신의 JS는 같을 것이다 당신은 정말 salesforce.stackexchange.com 그룹에이 문제를 제기해야

public static String serverEcho(String firstName)