Calling a Server-Side Action

DEX601 - Unit 2 Getting Started

📄 第 166 页 🎬 视频课程

课程章节介绍

让我们来聊聊如何在Salesforce的Lightning组件中调用服务器端的操作。这个过程其实就像是你去餐厅点餐,然后等待服务员把菜端上来一样。 首先,你需要创建一个“点餐单”,也就是在代码中创建一个服务器端操作的实例。这个操作可能是获取一些数据,比如学生的信息。你可以这样做: ```javascript var action = component.get("c.getStudents"); ``` 这里,`getStudents`就是你在服务器端定义的一个方法,用来获取学生数据。 接下来,你可能需要告诉服务员一些特别的指示,比如你想要哪种菜。在代码中,这相当于设置一些参数: ```javascript action.setParams({ instructorId: component.get("v.instructorId"), courseDeliveryId: component.get("v.courseDeliveryId") }); ``` 这些参数会传递给服务器端的方法,帮助它知道你需要哪些具体的数据。 然后,你需要告诉服务员,当菜准备好了之后,应该怎么做。在代码中,这就是设置一个回调函数: ```javascript action.setCallback(this, function(response) { var state = response.getState(); if (component.isValid() && state === "SUCCESS") { component.set("v.students", response.getReturnValue()); } else if (state === "ERROR") { var errors = response.getError(); if (errors) { console.error("Errors", errors); if (errors[0] && errors[0].message) { throw new Error("Error: " + errors[0].message); } } else { throw new Error("Unknown error"); } } }); ``` 这个回调函数会在服务器返回数据后执行。如果一切顺利,数据会被设置到组件的属性中;如果有错误,就会在控制台打印错误信息。 最后,你需要把点餐单交给服务员,也就是把操作发送到服务器: ```javascript $A.enqueueAction(action); ``` `$A.enqueueAction`这个函数会把你的操作加入到队列中,Salesforce框架会把这些操作打包,一次性发送到服务器,这样可以减少网络流量,提高效率。 这就是整个调用服务器端操作的过程。希望这个比喻能帮助你更好地理解这个过程!