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

题目描述

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}}

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

阅读 2.5k
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}}
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题