Registering and Raising a Custom Component Event

DEX601 - Unit 2 Getting Started

📄 第 207 页 🎬 视频课程

课程章节介绍

让我们来聊聊如何在Salesforce的Lightning组件中注册和引发自定义事件。这个过程其实很简单,就像你在家里设置一个闹钟,当时间到了,闹钟就会响起来提醒你。 首先,我们需要告诉系统,我们的组件可能会引发一个特定的事件。这就像是在说:“嘿,我可能会发出一个信号,你们要注意听哦!”我们通过使用``标签来做到这一点。比如,如果我们想要注册一个名为“onStudentSelected”的事件,我们可以这样写: ```html ``` 这里,`name`属性是我们给这个事件起的名字,而`type`属性则是这个事件的类型,它指向了我们定义的事件类型。 接下来,当某个动作发生时,比如用户点击了一个按钮,我们就需要引发这个事件。这就像是你按下闹钟的按钮,让它响起来。在JavaScript中,我们首先需要获取到这个事件的引用,这可以通过`component.getEvents("evtName")`来实现,其中`evtName`就是我们之前注册事件时使用的名字。 然后,我们可以选择性地为这个事件设置一些数据,这就像是你可以设置闹钟的铃声大小或者铃声类型。我们使用`setParams`方法来设置这些数据。最后,我们调用`fire()`方法来真正地引发这个事件。 来看一个具体的例子: ```javascript ({ onTileClick: function(component, event, helper) { var compEvents = component.getEvents("onStudentSelected"); // 可选:为事件设置一些数据 compEvents.setParams({"contactId": component.get("v.Student").Id}); compEvents.fire(); } }) ``` 在这个例子中,当用户点击某个元素时,`onTileClick`函数会被调用。我们首先获取到“onStudentSelected”事件的引用,然后设置了一个参数`contactId`,最后通过`fire()`方法引发了事件。 这样,当事件被引发时,任何监听这个事件的组件都会收到通知,并可以根据传递的数据做出相应的反应。这就是如何在Salesforce的Lightning组件中注册和引发自定义事件的基本过程。希望这个解释对你有帮助!