我正在使用Salesforce1(Aura平台)。我试图将值从客户端(javascript)传递到服务器端控制器(Apex代码)。
我尝试在JavaScript中使用setParams();
,在Apex中使用@key
注释,但在Apex中不支持@key
。
提前致谢。
我在这里提供示例代码......
应用代码:
<aura:application>
<PlumQ:example/>
</aura:application>
COMPONENT代码:
<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 CLASS):
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 :(得分:1)
您的代码几乎是正确的。您只需在 firstName 周围加上引号("
),然后从顶点控制器中删除 @Key 注释。所以你的JS看起来像:
a.setParams({
"firstName" : component.get("v.firstName")
});
你的心尖:
public static String serverEcho(String firstName)
答案 1 :(得分: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);
}
});