golang 的模板中可以通过动态的 key 取 map 中的值吗?

2021-03-24 08:35:39 +08:00
 sunmoon1983

我有一个 slice

keyList:=[ "2021-02", "2020-08", "2020-07", "2020-05", "2020-02", "2020-01", ]

还有一个 map

dataMap := map[string]int{
"2021-02":123,
"2020-08":234,
"2020-07":234234,
"2020-05":23423,
"2020-02":345345345,
"2020-01":456456,
}

想在模板中通过循环 slice 得到 map 中的值 比如

{{range $index, $date := .keyList}}
    {{if .dataMap.$date}} # 这里貌似不对呀,不知道应该怎么取
        {{range $key,$item := .dataList.$date}}
        <p>{{$date}}:{{$item}}</p>
        {{end}}
    {{end}}
{{end}}
1763 次点击
所在节点    Go 编程语言
5 条回复
nanjishidu
2021-03-24 08:54:41 +08:00
好像遇到过 模板中先声明赋值一下 datamap
vanishs
2021-03-24 09:11:23 +08:00
imherer
2021-03-24 09:13:08 +08:00
````
for _, key := range keyList {
fmt.Println(dataMap[key])
}
````
不知道为什么 贴完整代码提示要验证手机,那就贴关键部分吧
imherer
2021-03-24 09:14:06 +08:00
@imherer 不好意思看错了,说的是模板
sunmoon1983
2021-03-24 09:35:07 +08:00
谢谢大家,我找到方法了
```
{{range $item := index $.dataList $date}}
<li><b></b><span>{{$item.created_at | date "m-d"}}:<a href="{{$item.url}}">{{$item.title}}</a> </span></li>
{{end}}
```

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/764467

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX