事件响应器

通常在用户点击一个按钮或其它 UI 组件时(比如表格中的一行),你可能会希望触发一些事件。这时候你就可以用事件响应器(Event Handler)来指定当事件发生时,如何处理。

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

  • 触发事件:即什么情况下执行这个事件响应器。比如对于按钮组件来说有点击,而对于输入组件来说有聚焦等
  • 事件响应:即如何响应一个触发的事件。比如可以执行一个查询、下载指定的文件等

我们用例子来说明如何使用事件响应器。

执行查询

当你的用户点击按钮时,你可能希望执行一个查询。这里的查询可以是任意 SQL 或 API 请求,关于查询的详情请参考【使用查询】一文。

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

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

事件响应器

在上图中,我们指定了当用户点击按钮时,执行查询名为 get_all_posts 的查询。

导出数据

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

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

导出数据

查询上的事件触发器

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

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

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

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

查询事件触发

© 2021 卡拉云 Built with ❤️ in Beijing

京ICP备15049164号-9