通过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}}
何时应传递数据,何时应调用函数?是否有性能方面的原因可以避免其中之一(我想我应该避免在模板内部调用函数?)
答案 0 :(得分:5)
传入数据的最大优点是:它是恒定的。如果您两次调用某个函数(例如当前日期),则可能会返回两个不同的值(例如,如果一个调用发生在午夜之前,而另一个调用发生在午夜之后)。 另外:可能会失败的功能最好在模板之外进行处理。
调用格式化函数(显示逻辑):是的,因为这些函数是确定性的,并且不会失败。 调用业务逻辑:否