gpt4 book ai didi

templates - Go模板遍及结构的结构

转载 作者:数据小太阳 更新时间:2023-10-29 03:13:14 25 4
gpt4 key购买 nike

我正在尝试遍历一个由 2 个结构组成的结构列表。我在结构中正确填充数据没有问题,问题是当我尝试将其呈现为 HTML 时。我无法显示任何内容。

这是我的第一个 go web 项目,我正在开发一个为小型企业销售汽车的网站。我的数据库设计为 1..M 的汽车图片。所以在汽车主页上。我只想加载一张包含汽车细节的照片。我尝试为此使用 map ,但当我只想打印出 1 张图片以与通用 ID 上的正确汽车详细信息一起使用时遇到了问题。因此,我认为使用第三个结构可以为每个 ID 提取一张图片。

type Car struct {
Id int
Year, Make, Model, Price string
}

type Pics struct {
Id int
Path string
}


type CarDetail struct {
Cars Car
Pic Pics
}

func cars(w http.ResponseWriter, r *http.Request){
//loads all the cars in the database
cars := loadCars()
carDetails := make([]CarDetail,0)
carIds := make([]int,len(cars))
for i := 0; i < len(cars); i++{
//gets all the car IDs in the db
carIds[i] = getCarID(cars[i])
photoPath := loadSinglePhoto(carIds[i]) //now have the single photo
n := CarDetail{Cars:cars[i],Pic:photoPath}
carDetails = append(carDetails, n)
}

fmt.Println(carDetails) //getting car details the way I want
tpl.ExecuteTemplate(w, "cars", &carDetails)
}

在我传入结构之前的 print 语句以我想要的方式提供了信息。

[{{20 2009 本田雅阁 5000} {20 public/pics/questionMark.jpg}} {{21 2009 讴歌 TLX 14000} {21 public/pics/kia.png}} {{22 2015 起亚狮跑 34000} {22 public/pics/kia.png}}]

现在当我尝试在 html 中呈现它时

{{range .}}
<h3>{{.Cars.Make}} - {{.Cars.Model}} - {{.Cars.Year}}</h3>
<img src="{{.Pic.Path}}" id="{{.Pic.Id}}">
{{end}}

请随意批评我的代码或提出其他方法。提前致谢!

最佳答案

一些一般性的评论:

  • 你的命名有点误导:Pics 只包含一张图片,不是很多(不是数组或映射);同样适用于 CarDetail.Cars
  • 不知道您使用的是哪个数据库,我建议构建一个同时返回汽车和(主要)图片的查询,因为按每辆车查找图片效果不佳
  • 我建议将模板作为文件存储在具有特定扩展名的子文件夹中(例如“cars.gohtml”),然后使用 template.ParseGlob("templates/*.gohtml")

除此之外它应该可以工作,请在此处查看稍微重构的工作示例: https://play.golang.org/p/CPnad9FxaB

那么您自己的代码到底出了什么问题?

关于templates - Go模板遍及结构的结构,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45179681/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com