将 Go 函数传递给 html/js 按钮 "onclick" 响应
Pass Go function to html/js button "onclick" response
我正在使用 Go 的 "net/http" 包在 html 和 Go 后端之间传递数据。例如,我们可以像这样使用图像的位置:
<img src={{.MyPicture}} width=200 height=auto/>
我们可以做同样的事情,将函数传递给 html 并调用它们:
{{if .MyBool}}
{{.MyFunction}}
{{end}}
现在我的问题是:如何设置按钮的响应以调用我的函数?我希望这会起作用,但它不起作用:
<button onclick={{.ShowMoreLinks}}>Show more!</button>
我收到“需要 [js] 声明或声明。”我试过将它包装在脚本中(内联和 header),但这些似乎都不起作用。 JS无法处理传入的变量
实际上,您正在使用 Go 的模板机制来准备您发送给浏览器的 HTML。这只会填充占位符,最终只会生成一个字符串(在本例中为 HTML),该字符串将通过网络发送到浏览器进行解释。浏览器只能通过 "onclick" 等事件处理与用户的交互。此外,这些事件必须是 Javascript 代码,例如 JS 表达式或函数调用:
onclick="jsFunction()"
您可以让您的 Go 模板提供要在占位符中调用的函数:
onclick="{{.JSFuncCall}}"
此处“.JSFuncCall”必须计算出您必须在 JS 客户端代码中定义的某些 JS 函数名称(以及进行调用的括号)。然后 Javascript 函数可以在某个特定的 URL 处对服务器进行 XHR 调用,触发 Go 处理程序,运行 是你想要 运行 的 Go 代码,然后returns 然后您可以在 JS 函数中处理的响应。
我正在使用 Go 的 "net/http" 包在 html 和 Go 后端之间传递数据。例如,我们可以像这样使用图像的位置:
<img src={{.MyPicture}} width=200 height=auto/>
我们可以做同样的事情,将函数传递给 html 并调用它们:
{{if .MyBool}}
{{.MyFunction}}
{{end}}
现在我的问题是:如何设置按钮的响应以调用我的函数?我希望这会起作用,但它不起作用:
<button onclick={{.ShowMoreLinks}}>Show more!</button>
我收到“需要 [js] 声明或声明。”我试过将它包装在脚本中(内联和 header),但这些似乎都不起作用。 JS无法处理传入的变量
实际上,您正在使用 Go 的模板机制来准备您发送给浏览器的 HTML。这只会填充占位符,最终只会生成一个字符串(在本例中为 HTML),该字符串将通过网络发送到浏览器进行解释。浏览器只能通过 "onclick" 等事件处理与用户的交互。此外,这些事件必须是 Javascript 代码,例如 JS 表达式或函数调用:
onclick="jsFunction()"
您可以让您的 Go 模板提供要在占位符中调用的函数:
onclick="{{.JSFuncCall}}"
此处“.JSFuncCall”必须计算出您必须在 JS 客户端代码中定义的某些 JS 函数名称(以及进行调用的括号)。然后 Javascript 函数可以在某个特定的 URL 处对服务器进行 XHR 调用,触发 Go 处理程序,运行 是你想要 运行 的 Go 代码,然后returns 然后您可以在 JS 函数中处理的响应。