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

Aries
  • 544

题目描述

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

题目来源及自己的思路

我有一个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}}

你期待的结果是什么?实际看到的错误信息又是什么?

回复
阅读 889
1 个回答

经过大量搜索,找到办法了

{{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}}
宣传栏