Хотя я предполагаю, что это может быть ошибка в шаблоне Go, и возникла проблема:
https://github.com/golang/go/issues/38895
Я хотел бы спросить здесь, «по дизайну» поведение html / template Go, особенно правило с тегом <script>
. См. Ниже:
package main
import (
"fmt"
"html/template"
"os"
)
type User struct {
ID int `json:"id"`
Name string `json:"name"`
}
func main() {
u := User{1, "xrfang"}
//without <script>
t, _ := template.New("body").Parse("var u = {{.}}")
t.Execute(os.Stdout, u)
fmt.Println()
//with <script>
t, _ = template.New("body").Parse("<script>/*var u1 = {{.}}*/ var u2 = {{.}}</script>")
t.Execute(os.Stdout, u)
fmt.Println()
}
Шаблон без <script>
сгенерированной строки такой же, как вывод go s %+v
fmt string. Но версия <script>
сгенерировала JSON, и , код между /* ... */
автоматически удаляется ??