我试图比较golang html/template中列表的长度.但它在html中永远加载.
{{ $length := len .SearchData }} {{ if eq $length "0" }}
Sorry. No matching results found
{{ end }}
Run Code Online (Sandbox Code Playgroud)
任何人都可以帮我这个吗?
我正在压力测试(使用loader.io)这种类型的代码在Go中创建一个包含100个项目的数组以及一些其他基本变量,并在模板中解析它们:
package main
import (
"html/template"
"net/http"
)
var templates map[string]*template.Template
// Load templates on program initialisation
func init() {
if templates == nil {
templates = make(map[string]*template.Template)
}
templates["index.html"] = template.Must(template.ParseFiles("index.html"))
}
func handler(w http.ResponseWriter, r *http.Request) {
type Post struct {
Id int
Title, Content string
}
var Posts [100]Post
// Fill posts
for i := 0; i < 100; i++ {
Posts[i] = Post{i, "Sample Title", "Lorem Ipsum Dolor Sit Amet"}
}
type Page struct {
Title, …Run Code Online (Sandbox Code Playgroud) 我想格式化float64值在golang 2位小数html/template中说index.html文件.在.go文件中,我可以格式化为:
strconv.FormatFloat(value, 'f', 2, 32)
Run Code Online (Sandbox Code Playgroud)
但我不知道如何在模板中格式化它.我正在使用gin-gonic/gin框架进行后端.任何帮助将不胜感激.谢谢.
我知道这个问题可能与此问题重复.但到目前为止还没有得到满意的答案.我真的想引起一些关注,尽快找到解决方案.所以我请求你不要关闭这个问题,除非你有解决方案并在前一个问题中回答:-)
我将描述说服的问题:
我有一个存储在mongodb中的数据结构,众所周知,_idmongodb是一个bson.ObjectId类型,我可以用这样的方式检索它:
type Data struct {
Id bson.ObjectId `bson:"_id,omitempty"`
Content string `bson:"content"`
}
Run Code Online (Sandbox Code Playgroud)
然后我Data通过查找特定的查询条件得到了一片,并使用该片段http/template来渲染前端视图.为了操作切片中的每个项目,我想使用该Id字段,但在使用时:
{{range $key, $value := .DataSlice}}
<td>{{$value.Id}}</td>
{{end}}
Run Code Online (Sandbox Code Playgroud)
那只是给出了一种类似的字符串ObjectIdHex("550146d1b51bc1c208d1924d")而不是550146d1b51bc1c208d1924d哪种字符串很好且易于使用.
在重复的问题.操作人员说,他找到了一种解决方法,通过"添加Id_String"原始数据结构来解决这个问题.但我真的不知道该怎么做?这是指在检索后分配它吗?由于我使用切片来存储检索到的数据,因此切片中的数据无法轻易更改.这样做比使用jquery做前端的工作要复杂得多.但这样做只会让我心爱的Go: - (.
那么还有更好的方法吗?
尝试呈现HTML模板,以便通过带有嵌入式附件的电子邮件发送cid:.问题是,Go确实逃避了,我无能为力.
tplVars := map[string]interface{}{
"Dog": "cid:dog.png",
"Cat": "cid:cat.png",
}
Run Code Online (Sandbox Code Playgroud)
我的测试模板看起来不像这样:
Dog: <img src="{{.Dog}}">
Cat: {{.Cat}}
Run Code Online (Sandbox Code Playgroud)
输出是:
Dog: <img src="#ZgotmplZ">
Cat: cid:cat.png
Run Code Online (Sandbox Code Playgroud)
如果text在属性上下文之外,则会对其进行正确计算,但是当它是一个src属性时,它总是成为该错误字符串.我也尝试过更改值string,template.HTMLAttr但没有任何反应.始终将Cid值评估为该错误输出#ZgotmplZ.
我在后端使用Golang.当我使用html/templates渲染html时,我正在获取ZgotmplZURL.
{{if .UserData.GitURL}}
<li>
<a href="{{.UserData.GitURL}}">
<i class="icon fa fa-github"></i>
</a>
</li>
{{end}}
Run Code Online (Sandbox Code Playgroud)
我在服务器端使用GitURL的字符串.这个URL是https.当我寻找解决方案时,一些博客建议使用safeURL.所以我试过,
{{if .UserData.GitURL}}
<li>
<a href="{{.UserData.GitURL | safeURL}}">
<i class="icon fa fa-github"></i>
</a>
</li>
{{end}}
Run Code Online (Sandbox Code Playgroud)
但是代码没有编译.
有人可以帮我吗?任何建议都会非常有用.
我有一个控制空白的问题,仍然html/template以可读的方式格式化模板.我的模板看起来像这样:
layout.tmpl
{{define "layout"}}
<!DOCTYPE html>
<html>
<head>
<title>{{.title}}</title>
</head>
<body>
{{ template "body" . }}
</body>
</html>
{{end}}
Run Code Online (Sandbox Code Playgroud)
body.tmpl
{{define "body"}}
{{ range .items }}
{{.count}} items are made of {{.material}}
{{end}}
{{end}}
Run Code Online (Sandbox Code Playgroud)
码
package main
import (
"os"
"text/template"
)
type View struct {
layout string
body string
}
type Smap map[string]string
func (self View) Render(data map[string]interface{}) {
layout := self.layout + ".tmpl"
body := self.body + ".tmpl"
tmpl := template.Must(template.New("layout").ParseFiles(layout, body))
tmpl.ExecuteTemplate(os.Stdout, "layout", data)
} …Run Code Online (Sandbox Code Playgroud) 我正在使用hugo v0.15,我正在尝试对自定义属性的页面进行排序。
我将子页面定义如下:
+++
title= "bla bla bla"
parent = "parent"
index = 0 # each page is assigned a unique index
+++
Run Code Online (Sandbox Code Playgroud)
在我的父模板中如下:
{{ range sort .Site.Pages ".Params.index" }}
<a href="{{.RelPermalink}}">
{{.Title}} {{.Params.index}}
</a>
{{end}}
Run Code Online (Sandbox Code Playgroud)
这在编译时不会失败,但列表呈现为空。我缺少什么?
我正在使用 Telerik 报告工具生成不同格式的报告,.pdf、.html、.doc、.txt 等。我们客户的一些电子邮件服务器不支持电子邮件中的附件,所以我想将 .html 报告嵌入到我的电子邮件正文而不是将其附加为附件,以便用户可以直接查看报告内容并复制报告内容。但是当我将 .html 报告附加到电子邮件正文时,它不会以正确的格式呈现。是否有任何在线工具或插件可以将普通的 html 转换为电子邮件模板友好的 html?或者我如何验证此页面是否可以作为电子邮件正文正常呈现,否则为什么不呢?我应该删除或替换哪个标签等。
我已经尝试过这个在线工具, 但它不起作用,电子邮件中的 html 仍然很脏。
看完这个视频,我自己试了一下。但是,我收到了恐慌错误panic: open templates/index.html: The system cannot find the path specified.完整的错误消息,如下所示。
Hello, Go Web Development 1.3
panic: open templates/index.html: The system cannot find the path specified.
goroutine 1 [running]:
panic(0x789260, 0xc082054e40)
F:/Go/src/runtime/panic.go:481 +0x3f4
html/template.Must(0x0, 0xe34538, 0xc082054e40, 0x0)
F:/Go/src/html/template/template.go:340 +0x52
main.main()
E:/Users/User/Desktop/codespace/go_workspace/src/go-for-web-dev/src/1.3_UsingTemplate.go:11 +0x20d
Run Code Online (Sandbox Code Playgroud)
我尝试了不同的字符串,如"templates/index.html", "index.html", "./template/index.html"... 另外,我尝试将整个模板文件夹复制到pkg, bin...但我收到相同的错误消息。
下面是go程序(1.3_UsingTemplate.go)。
package src
import (
"fmt"
"net/http"
"html/template"
)
func main() {
fmt.Println("Hello, Go Web Development 1.3")
templates := template.Must(template.ParseFiles("templates/index.html")) //This line should …Run Code Online (Sandbox Code Playgroud) go-html-template ×10
go ×8
html ×3
templates ×2
css ×1
equals ×1
format ×1
html-email ×1
hugo ×1
mgo ×1
objectid ×1
path ×1
url ×1
whitespace ×1