我试图遍历一个包含2个结构的结构列表。在结构中正确地填充数据没有问题,问题是当我试图将其呈现到HTML中时。我拿不到要展示的东西。
这是我的第一个go网络项目,我正在为一家小企业销售汽车的网站工作。我的数据库被设计成一个从汽车到Pics的1..M。所以在汽车主页上。我只想加载一张照片与汽车的细节。我试着使用地图来解决这个问题,但是我遇到了一个问题,当我想打印出一张图片来匹配公共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)
}就在我传入struct之前的print语句按照我想要的方式给了我信息。
{{202009Honda Accord5000}{20public/questonMark.jpg}}{{212009Acura TLX 14000} {21public/pics/kia.png}}{{222015 Kia Sportage 34000} {22public/pics/kia.png}}
现在,当我尝试在html中呈现它时。
{{range .}}
<h3>{{.Cars.Make}} - {{.Cars.Model}} - {{.Cars.Year}}</h3>
<img src="{{.Pic.Path}}" id="{{.Pic.Id}}">
{{end}}请随时批评我的代码,或者提出其他建议。提前谢谢你!
发布于 2017-07-19 17:21:57
下面是一些大体上的说明:
。我建议建立一个同时返回汽车和(主要)图片的查询,因为按每辆车查找图片不会有很好的效果
除此之外,它应该可以工作,请参阅此处稍微重构的工作示例:https://play.golang.org/p/CPnad9FxaB
那么,您自己的代码到底出了什么问题呢?
发布于 2017-07-20 08:20:06
所以我找到了罪魁祸首奇怪的是,之前的一些HTML代码被注释掉了,导致模板无法呈现。我不知道为什么。
<!--
<h1>Your Pictures:</h1>
{{range .Pics}}
<img class="insertedPics" src="{{.Path}}" alt="pic" id="{{.Id}}"
height="500px" width="500px">
{{end}}
{{range .Cars}}
<h3>{{.Make}} - {{.Model}} - {{.Year}} </h3>
{{end}}
<img src="{{.Pic.Path}}" alt="car pic" id="{{.Car.Id}}" height="600px" width="600px">
--> <-- Once I removed this, everything worked fine.
{{range .}}
<h3>{{.C.Make}} - {{.C.Model}}</h3>
<img src="{{.P.Path}}" alt="some pic" height="500px" width="500px"
style="">
{{end}}感谢您的帮助和建议!
https://stackoverflow.com/questions/45179681
复制相似问题