课程章节介绍
让我们一步一步来理解如何使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中的数据了。