javascript - SALESFORCE1 ( AURA平台): 如何将值从客户端代码( JavaScript代码) 传递到服务器端 code(APEX)?

  显示原文与译文双语对照的内容
0 0

我正在处理 Salesforce1 ( Aura平台) 。 我正在尝试从客户端( javascript ) 传递值到服务器端 controller(Apex-code) 。 我尝试在JavaScript和 @key 注释中使用 setParams();,但Apex不支持 @key

先谢谢了。

我在这里提供样本代码。

应用程序代码:

 <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>

**client-side-controller(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);

} })

server-side-controller ( 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);
 }
 }
时间:原作者:3个回答

0 0

你不需要 @key 符号,字符串应该可以工作。

尝试将你关闭的$A.enqueueAction(a); inside 设置为:

({
"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);
 }
 });
原作者:
0 0

你的代码几乎是正确的。 你只需要在 around加上引号( " ),然后从你的apex控制器中删除 @Key 注释。 所以你的JS看起来像:

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

和你的apex:

public static String serverEcho(String firstName)
原作者:
...