首页 > 解决方案 > 什么时候应该将数据传递给模板,什么时候调用函数?

问题描述

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

什么时候应该传递数据,什么时候应该调用函数?是否有避免其中之一的性能原因(我想我应该避免在模板中调用函数?)

标签: go

解决方案


传入数据的一大优点是:它是恒定的。如果您两次调用一个函数(例如当前日期),它可能会返回两个不同的值(例如,如果一个调用发生在午夜之前,另一个调用发生在午夜之后)。另外:可能失败的函数最好在模板之外处理。

调用格式化函数(显示逻辑):是的,因为这些函数是确定性的并且不会失败。调用业务逻辑:否。


推荐阅读