登录
首页 >  Golang >  Go问答

Go 模板:无法评估类型 Y 中的字段 X(X 不是 Y 的一部分,但卡在 {{range}} 循环中)

来源:Golang技术栈

时间:2023-04-28 22:28:19 181浏览 收藏

各位小伙伴们,大家好呀!看看今天我又给各位带来了什么文章?本文标题《Go 模板:无法评估类型 Y 中的字段 X(X 不是 Y 的一部分,但卡在 {{range}} 循环中)》,很明显是关于Golang的文章哈哈哈,其中内容主要会涉及到golang等等,如果能帮到你,觉得很不错的话,欢迎各位多多点评和分享!

问题内容

[在这里回答了类似的问题](https://stackoverflow.com/questions/37124256/go-cant-evaluate- field-when-using-range-to-build-from-template),但我认为它不能解决我的问题。

假设您有以下结构:

type User struct {
    Username string
    Password []byte
    Email string
    ...
}

此外,URL 具有这样的结构:example.com/en/users,其中"en"的 URL 参数将被传递到模板中,如下所示:

renderer.HTML(w, http.StatusOK, "users/index", map[string]interface{}{
  "lang":  chi.URLParam(r, "lang"),
  "users": users})

在 HTML 模板中,我有以下内容:

{{ range .users }}
  
{{ end }}

现在,问题是因为{{ .lang }}不是User结构的一部分,所以我得到了错误..那么我怎样才能访问{{ .lang }}内部{{ range .users }}呢?

正确答案

点 ( ) 的内容是在调用 后.赋值给的,所以你可以使用来访问( on play ):$``range``$``lang

{{ range .users }}
  
{{ end }}

该行为记录在此处

开始执行时,$设置为传递给 的数据参数,即设置Execute为 dot 的起始值。

如果您使用的是嵌套范围,则始终可以使用with语句或变量赋值语句将点分配给其他内容。请参阅其他答案

以上就是《Go 模板:无法评估类型 Y 中的字段 X(X 不是 Y 的一部分,但卡在 {{range}} 循环中)》的详细内容,更多关于golang的资料请关注golang学习网公众号!

声明:本文转载于:Golang技术栈 如有侵犯,请联系study_golang@163.com删除
相关阅读
更多>
最新阅读
更多>
课程推荐
更多>