![](/img/trans.png)
[英]How to compare the length of a list in html/template in golang?
[英]How to add an HTML Tag Attribute in GoLang Template
我有以下代碼:
{{range . }}
<td {{ if not .IsDisabled }}onclick="return toggle_active($(this))"{{ end }}>
[x]
</td>
{{end}}
這有效,它按應有的方式放置 onclick 事件。
但是,如果我嘗試將onclick
事件動態創建為字符串(在模板中,或作為 Go function,它不起作用。
例子:
{{$clickEvent := "return toggle_active($(this));"}}
<td {{$clickEvent}}>[x]</td>
或者:
func (d TemplateObject) Click() string {
return "onclick=\"toggle_active($(this))\""
}
<td {{.Click}}>[x]</td>
它在 HTML 中呈現如下:
如果我不將它放在<tag>
本身<td>{{$ClickEvent}}</td>
中,它會將其打印為字符串。
如何讓屬性正確呈現?
你需要做
func (d TemplateObject) Click() template.HTMLAttr {
return "onclick=\"toggle_active($(this))\""
}
這樣它就知道該字符串可以安全地用作屬性
https://pkg.go.dev/html/template#HTMLAttr
HTMLAttr 封裝了一個來自可信來源的 HTML 屬性,例如
dir="ltr"
。 使用這種類型存在安全風險:封裝的內容應來自可信來源,因為它將逐字包含在模板 output 中。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.