【发布时间】:2018-05-18 09:48:34
【问题描述】:
我已经开始使用 Go 语言,现在正在尝试创建一个 HTML 页面。我对 Go 和 HTML 编码都很陌生。
在 Go 程序中,我试图将 HTML 页面 (div) 解析为主 html 页面 (index.html) 我正在尝试使用 Go 中的模板将此 div 添加到主 html 页面。
我试图将数据解析成的 html 页面如下所示:
<html>
<head>
<meta charset="utf-8">
<title>SmartHomePi Status</title>
<link rel="stylesheet" href="../static/css/style.css">
</head>
<body>
<h1>HomeControl Connection Status</h1>
<div id="wrapper" width="100%">
{{.SonoffBasic}}
</div>
</body>
{{.SonoffBasic}} 部分是我尝试添加 div 的部分。 我尝试添加的 div 如下所示:
<div id="sonoffbasicdevice">
<span class="%connectiondotclass%"></span>
<p id="title">%title%</p>
<p id="tempandhum">%humstatus%</p>
<p id="ipaddress">%ipaddress%</p>
<p id="portnumber">%portnumber%</p>
</div>
所有带有 %xxx% 的值都在 go 中解析以包含有用的信息,并且一切正常。
但现在我尝试使用 Go 中的模板将这两个一起解析,这里似乎出了点问题。
我在 Go 中使用以下函数:
func renderHomeKitTemplate(w http.ResponseWriter, tmpl string, items *WebPageHTMLItems) {
err := templates.ExecuteTemplate(w, "index.html", items)
}
其中的变量 items 是一个如下所示的结构:
type WebPageHTMLItems struct{
SonoffBasic string
}
其中的 SonoffBasic 字符串包含所有已填充信息的 div。
我运行程序时可以查看网页,但是当我显示网页时,不是解析div,而是显示为纯文本,我在这里做错了什么?
这甚至是将数据解析为 HTML 文件的正确方法吗?我之所以使用这种添加完整 div 的方式,是因为我可以有多个“sonoffbasicdevice”项,并且应该添加多个。
【问题讨论】:
标签: html go go-templates