Making Apex Controller Methods Available to a Lightning App

DEX601 - Unit 2 Getting Started

📄 第 165 页 🎬 视频课程

课程章节介绍

让我们一步一步来理解如何使Apex控制器方法在Lightning组件中可用。 首先,我们需要在Apex控制器中定义一个方法,并使用`@AuraEnabled`注解来标记它。这个注解告诉Salesforce,这个方法可以被Lightning组件调用。例如,我们有一个名为`FindAccount`的Apex类,里面有一个方法`getData`,它接受一个账户ID作为参数,并返回该账户的名称列表。 ```apex public class FindAccount { @AuraEnabled public static List getData(Id actID) { return [SELECT Name FROM Account WHERE Id = :actID]; } } ``` 接下来,我们需要在Lightning组件中引用这个Apex控制器。我们通过在组件的``标签中添加`controller`属性来实现这一点,属性值就是我们Apex控制器的名称,这里是`FindAccount`。 ```html ``` 在组件的JavaScript控制器中,我们可以调用Apex控制器中的方法。首先,我们通过`component.get("c.methodName")`来获取Apex方法的引用,然后使用`setParams`方法设置参数。接着,我们定义一个回调函数来处理Apex方法的返回结果,并使用`$A.enqueueAction`将动作加入队列执行。 ```javascript ({ retrieveAccount: function(component, event, helper) { var action = component.get("c.getData"); action.setParams({ actID: component.get("v.actId") }); action.setCallback(this, function(response) { var state = response.getState(); if (component.isValid() && state === "SUCCESS") { component.set("v.accountName", response.getReturnValue()); } }); $A.enqueueAction(action); } }) ``` 这样,当Lightning组件加载或某个事件触发时,`retrieveAccount`函数就会被调用,它会执行Apex控制器中的`getData`方法,并将返回的账户名称设置到组件的属性中,供组件使用。 总结一下,要使Apex控制器方法在Lightning组件中可用,我们需要: 1. 在Apex类中使用`@AuraEnabled`注解标记方法。 2. 在Lightning组件的``标签中指定控制器。 3. 在JavaScript控制器中调用Apex方法,并处理返回结果。 这样,Lightning组件就可以与Apex控制器进行交互,获取或操作Salesforce中的数据了。