Listening for an Application Event

DEX601 - Unit 2 Getting Started

📄 第 213 页 🎬 视频课程

课程章节介绍

今天我们来聊聊如何在Salesforce的Lightning组件中监听应用程序事件。应用程序事件是一种非常强大的工具,它允许你在不同的组件之间传递信息,而不需要这些组件之间有直接的父子关系。 首先,我们来看一下如何使用``来监听一个应用程序事件。假设我们有一个名为`c:AppStudentSelected`的应用程序事件,我们想要在某个组件中监听这个事件,并在事件触发时执行一些操作。 在Lightning组件的标记中,你可以这样写: ```html ``` 这里有几个关键点需要注意: 1. ,`event`属性,:这个属性指定了你想要监听的事件。在这个例子中,我们监听的是`c:AppStudentSelected`事件。注意,事件名称前面有一个`c:`,这表示这个事件是在你的自定义命名空间中定义的。 2. ,`action`属性,:这个属性指定了当事件被触发时,你想要执行的控制器方法。在这个例子中,我们指定了`{!c.onStudentSelected}`,这意味着当`c:AppStudentSelected`事件被触发时,`onStudentSelected`方法会被调用。 3. ,没有`name`属性,:与处理组件事件不同,应用程序事件的``不需要指定`name`属性。这是因为应用程序事件是全局的,任何组件都可以监听它们,而不需要知道事件的来源。 接下来,你需要在你的控制器中定义`onStudentSelected`方法。这个方法会接收一个事件参数,你可以从这个参数中获取事件传递的数据,并执行相应的逻辑。 例如: ```javascript ({ onStudentSelected: function(cmp, event, helper) { var selectedStudent = event.getParam("student"); // 在这里处理选中的学生信息 } }) ``` 在这个方法中,`event.getParam("student")`用于获取事件传递的`student`参数。你可以根据这个参数的值来更新组件的状态或执行其他操作。 总结一下,使用``监听应用程序事件是一个非常直接的过程。你只需要指定事件名称和对应的控制器方法,然后在控制器中处理事件传递的数据即可。希望这个解释对你有帮助!如果有任何问题,随时问我。