Golang网站开发之模板中的range嵌套if的使用方法

{app.params.name}}{app.params.name}}{app.params.name}}

情况介绍

我有一个分类想要在前端展示出来,并将选中的数组项进行特殊处理

开始我以为是这样的

选中的数组值存在CategoryID中 分类数组列表存在Cate中

<div class="form-group">
  <label for="category">分类</label>
  <select class="form-control" id="category_id" name="category_id">
    {{range .Cate}}
    <option value="{{ .autokid }}" {{if eq .autokid .CategoryID}}selected{{end}}>{{ .name }}</option>
    {{ end }}
  </select>
</div>

结果前端运行的时候提示我

template: update.html:54:48: executing "content" at <eq .autokid .CategoryID>: error calling eq: invalid type for comparison

看不懂也不了解,但是看官方文档也是没有什么特殊提示的地方,可能是我没有找到吧,不过在搜索的过程中我隐约记得似乎需要进行赋值操作,我试着改了下,结果如下

<div class="form-group">
  <label for="category">分类</label>
  <select class="form-control" id="category_id" name="category_id">
    {{ $categoryID := .CategoryID }}
    {{range .Cate}}
    <option value="{{ .autokid }}" {{if eq .autokid $categoryID}}selected{{end}}>{{ .name }}</option>
    {{ end }}
  </select>
</div>

再次运行下试试,果然可以了,是什么原因要重新创建一个变量赋值后才能调用

期间我试过这样的操作

CategoryID {{.CategoryID}}

{{range .Cate}}
CategoryID {.CategoryID}
autokid
{{ .autokid }}
{{ end }}

会得到下面的结果

CategoryID - 1

CategoryID - 
autokid - 1

说明确实要重新创建一个变量来使用,否则直接在range范围内是无法调用的

版权声明

durban创作并维护的 小绒毛的足迹博客采用创作共用保留署名-非商业-禁止演绎4.0国际许可证。

本文首发于 博客( https://www.xiaorongmao.com ),版权所有,侵权必究。

本文永久链接: https://www.xiaorongmao.com/blog/135


版权声明

durban创作并维护的 小绒毛的足迹博客采用创作共用保留署名-非商业-禁止演绎4.0国际许可证。

本文首发于 小绒毛的足迹博客( https://www.xiaorongmao.com ),版权所有,侵权必究。

本文永久链接: https://www.xiaorongmao.com/blog/135