go - 什么时候应该将数据传递给模板,什么时候调用函数?
问题描述
通过Funcs将函数传递给模板后,可以直接在模板中调用这些函数。数据也可以通过Execute传递。
到目前为止,我已将一般数据传递给模板,并且仅在必须格式化时间或某些字符串时才调用函数。见下文。
结合两者:
{{range .AssignedTickets}}
<p>FormatDate .Date</p>
<p>{{FormatEditorName .EditorID}}</p>
{{end}}
主要使用函数,假设仅EditorID
作为数据传递:
{{$assignedTickets := GetAssignedTickets .EditorID}}
{{range $assignedTickets}}
<p>FormatDate .Date</p>
<p>{{FormatEditorName .EditorID}}</p>
{{end}}
什么时候应该传递数据,什么时候应该调用函数?是否有避免其中之一的性能原因(我想我应该避免在模板中调用函数?)
解决方案
传入数据的一大优点是:它是恒定的。如果您两次调用一个函数(例如当前日期),它可能会返回两个不同的值(例如,如果一个调用发生在午夜之前,另一个调用发生在午夜之后)。另外:可能失败的函数最好在模板之外处理。
调用格式化函数(显示逻辑):是的,因为这些函数是确定性的并且不会失败。调用业务逻辑:否。
推荐阅读
- php - 某些图像 src="" 未显示在 localhost.html/localhost.php 文件中,但显示在纯 .html 文件中
- bootstrap-4 - PrimeNG 和引导程序
- c# - 如何使用单个查询插入许多子/父项
- kotlin - 在kotlin的for循环中检查If Condition
- php - 在 mysql 中获取详细信息时遇到问题
- excel - Excel图表十六进制轴值
- html - 材料化页脚不会停留在底部?
- vb.net-2010 - 计数特定的列名
- sql - 如何在 Excel 或 SQL 中将数据从宽格式传输到长格式?
- java - 在 Kotlin 项目中包含使用 Java9 或 Java10 构建的 maven 依赖项