英文:
Go: Is there a modulus I can use inside a template
问题
我的问题如标题所述。我正在尝试做类似的事情:
{{range $index, $element := .Products}}
{{if $index % 4 == 0}}<div class="row">{{end}}
<div class="columns small-3 product">
<img src="/img/{{.ImageUrl}}" alt="{{.ImageUrl}}" />
<a href="/product">
<h3>{{.Title}}</h3>
</a>
<p>
{{.Description}}
</p>
<p>
{{.Price}} / 升
</p>
</div>
{{if index % 4 == 0}}</div>{{end}}
{{end}}
我得到了错误:
template: products.html:9: 意外的“%”操作数
在模板中有没有其他方法可以进行取模运算?
英文:
My question is as stated in the title. I am trying to do something like:
{{range $index, $element := .Products}}
{{if $index % 4 == 0}}<div class="row">{{end}}
<div class="columns small-3 product">
<img src="/img/{{.ImageUrl}}" alt="{{.ImageUrl}}" />
<a href="/product">
<h3>{{.Title}}</h3>
</a>
<p>
{{.Description}}
</p>
<p>
{{.Price}} / liter
</p>
</div>
{{if index % 4 == 0}}</div>{{end}}
{{end}}
I get the error:
template: products.html:9: unexpected "%" in operand
Is there an alternate way to do modulus in a template?
答案1
得分: 18
添加一个你需要的逻辑的模板函数。例如:
t := template.New("")
t.Funcs(template.FuncMap{"mod": func(i, j int) bool { return i%j == 0 }})
t.Parse(`... {{if mod $index 4}}<div class="row">{{{end}} ...`)
英文:
Add a template function with the logic you need. For example:
t := template.New("")
t.Funcs(template.FuncMap{"mod": func(i, j int) bool { return i%j == 0 }})
t.Parse(`... {{if mod $index 4}}<div class="row">{{{end}} ...`)
通过集体智慧和协作来改善编程学习和解决问题的方式。致力于成为全球开发者共同参与的知识库,让每个人都能够通过互相帮助和分享经验来进步。
评论