如何在"view"目录中有一个触发 ubus 方法的用户操作?



我正在尝试使用 openwrt 和 luci 为 GUI 实现一些代码。 我想知道如何实现在用户提交 lua 命令时触发 lua 命令的按钮或公式。

我使用 ubus 制作了一个 lua 脚本来控制 gpios 和中继,现在我正在尝试制作一个 GUI,其中允许用户通过 ubus 命令控制每个 GPIO 和中继。

我知道通过 GUI 调用 ubus 方法的命令。 我做了一个新页面,里面有几个图形项目。是否可以实现一个按钮/公式来更改变量,并且该变量将被lua脚本使用?

谢谢。

是的,有两种简单的方法可以实现这一点:

  1. 向控制器发出/获取请求。
  2. 在 HTM 中使用 Lua 函数。

第一个在概念上应该不难理解,你可以在这里阅读JavaScript(AJAX)中的POST/GET请求:https://www.w3schools.com/jquery/jquery_ajax_get_post.asp

第二个选项对于非常简单的东西(或用于测试目的)很好,但我建议不要仅仅因为要键入的内容较少而将其用于第一个选项。您需要做的就是简单地用<% (code goes here) %>包围您的 Lua 代码。

但是,还有另一种方式根本不依赖于Lua/JavaScript。您可以创建一个配置文件(因为您似乎正在向其保存一些内容),并使用 procd 使 init 脚本启动服务/更改配置文件后更改某些参数。下面是如何执行此操作的示例:https://openwrt.org/docs/guide-developer/procd-init-scripts

使用 curl 命令,您可以在按下按钮时触发 curl 命令,在那里您可以实现您的功能

相关内容

最新更新