登录
首页 >  Golang >  Go问答

简单,如果不工作去模板

来源:Golang技术栈

时间:2023-03-21 21:35:56 449浏览 收藏

从现在开始,我们要努力学习啦!今天我给大家带来《简单,如果不工作去模板》,感兴趣的朋友请继续看下去吧!下文中的内容我们主要会涉及到golang等等知识点,如果在阅读本文过程中有遇到不清楚的地方,欢迎留言呀!我们一起讨论,一起学习!

问题内容

所以我正在做一个简单的 if 检查结构中的布尔值,但它似乎不起作用,它只是停止渲染 HTML。

所以下面的结构是这样的:

type Category struct {
    ImageURL      string
    Title         string
    Description   string
    isOrientRight bool
}

现在我有一个 Category 结构的切片,我可以用一个范围来显示它。

Bellow 是一个结构的示例:

juiceCategory := Category{
    ImageURL: "lemon.png",
    Title:    "Juices and Mixes",
    Description: `Explore our wide assortment of juices and mixes expected by
                        today's lemonade stand clientelle. Now featuring a full line of
                        organic juices that are guaranteed to be obtained from trees that
                        have never been treated with pesticides or artificial
                        fertilizers.`,
    isOrientRight: true,
}

我尝试了多种方法,如下所示,但都没有奏效:

{{range .Categories}}
    {{if .isOrientRight}}
       Hello
    {{end}}
    {{if eq .isOrientRight true}}
       Hello
    {{end}}

   
   {{ printf .isOrientRight }} 

{{end}}

正确答案

您必须导出要从模板访问的所有字段:将其第一个字母更改为大写I

type Category struct {
    ImageURL      string
    Title         string
    Description   string
    IsOrientRight bool
}

以及对它的每一个引用:

{{range .Categories}}
    {{if .IsOrientRight}}
       Hello
    {{end}}
    {{if eq .IsOrientRight true}}
       Hello
    {{end}}

   
   {{ printf .IsOrientRight }} 

{{end}}

每个未导出的字段只能从声明包中访问。您的包声明了Category类型,text/template并且html/template是不同的包,因此如果您希望这些包可以访问它,则需要导出它。

Template.Execute()返回一个错误,如果你已经存储/检查了它的返回值,你会立即发现这一点,因为你会得到一个类似于这个的错误:

模板::2:9:在 <.isorientright> 处执行“”:isOrientRight 是结构类型 main.Category 的未导出字段

在Go Playground上查看您的代码的工作示例。

到这里,我们也就讲完了《简单,如果不工作去模板》的内容了。个人认为,基础知识的学习和巩固,是为了更好的将其运用到项目中,欢迎关注golang学习网公众号,带你了解更多关于golang的知识点!

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