事件响应器

当用户与界面交互时,你经常会希望某些操作能触发一些动作,如执行一个查询或者将指定的数据下载为 CSV 文件等。

举个具体的例子,当用户点击一个按钮时,你可能希望触发删除查询,来删除用户选中的表格中的一行。这样常见的操作在应用逻辑中经常出现,因此我们将它抽象出来,所有的事件触发响应均称为 事件响应

删除行事件响应示例

事件响应器的组成通常有两个部分

  • 触发时机: 即什么情况下执行这个事件响应器。比如对于按钮组件来说有点击,而对于输入组件来说有聚焦等
  • 触发执行: 被触发时,执行什么操作。通常包括导出数据、执行查询、复制指定数据、重置其它组件等

你只需要配置好组件上或者查询上在某些时机下应该如何响应,卡拉云就可以按照你的配置执行复杂的逻辑帮你的用户完成工作流。

下文中我们详细介绍事件响应的使用方法。

触发时机

配置事件响应器的第一步是选择触发时机。

触发时机的概念很好理解, 即“在什么情况下”这个事件响应应该发生。比如说,对于按钮组件来说,通常事件响应发生在它被点击时;对于下拉菜单来说,通常发生在它的选项被选中时。

有一些组件或者查询可能包含多种事件响应时机,你只需要按你的需求选择对应的触发时机即可。

触发 - 执行查询

当你的用户点击按钮时,你可能希望执行一个查询。这里的查询可以是任意 SQL 或 API 请求,

👍
使用查询
关于使用查询的详细文档请参考查询数据源

我们假设这里要进行的请求是用 API 来查询所有用户的发贴子。当运营点击这个按钮时,发送请求并展示结果

首先在画布上选中按钮,在右侧边栏的控制器中会看到 事件 这个区域。点击 添加事件 按钮,这里出现以下界面

事件响应器

在上图中,我们指定了当用户点击按钮时,执行查询名为 updateAddress 的查询,用以更新地址。

👍
实例教程
如果需要包含如何使用查询的实例教程,请参考《创建第一个应用》

触发 - 导出数据

如果你希望用户可以下载文件(比如点击一个按钮时,或者选中下拉菜单中的某个值时),那么你可以设置事件响应器中的响应为导出数据。

我们仍然用按钮来举例子,在画布中选中按钮后,在右侧控制器中添加事件。选中 导出数据,然后填入导出的文件名,格式和数据即可,如下图所示

导出数据

触发 - 重置组件数据

有时在用户点击提交数据后,你可能希望重置组件的数据。这个操作常用在类似表单的操作中。

这样的情况下你可以使用重置组件数据事件响应。

查询上的事件触发器

如果你希望一个查询自动触发另一个查询,也可以在查询上使用事件触发器。

用到查询事件触发的最常见场景是当你更新了数据库后(比如插入了一条数据或者删除了一条数据),希望自动刷新更新后的结果到表格中。

举个例子,我们有一个 update_user 查询,用来向数据库中添加一条数据。我们有另一个查询 get_all_users 用来查询数据库中所有用户。

那么当 update_user 查询执行插入数据后,我们希望可以自动刷新,让用户可以看到更新后的数据。这时你可以在 update_user 这个查询的事件处理中,让它在执行成功时自动触发 get_all_users 即可。

在查询编辑页面,你可以编辑查询的事件响应。查询上的事件响应配置也非常简单,与组件上一致,如下图

查询事件触发