通过Funcs将函数传递给模板时,可以直接在模板中调用这些函数.数据也可以通过Execute传递.
到目前为止,我已经将一般数据传递给模板,并且仅在调用函数时才调用函数,例如我必须格式化Time或某些String.见下文.
结合两者:
{{range .AssignedTickets}}
<p>FormatDate .Date</p>
<p>{{FormatEditorName .EditorID}}</p>
{{end}}
Run Code Online (Sandbox Code Playgroud)
主要使用函数,假设仅EditorID作为数据传递:
{{$assignedTickets := GetAssignedTickets .EditorID}}
{{range $assignedTickets}}
<p>FormatDate .Date</p>
<p>{{FormatEditorName .EditorID}}</p>
{{end}}
Run Code Online (Sandbox Code Playgroud)
我何时应该传递数据?何时应该调用函数?是否存在性能原因,以避免其中一个(我猜我应该避免在模板中调用函数?)
传入数据的最大优点是:它是不变的.如果你两次调用函数(例如当前日期),它可能会返回两个不同的值(例如,如果一个调用发生在午夜之前,另一个调用发生在午夜之后).另外:可能失败的函数最好在模板外部处理.
调用格式化函数(显示逻辑):是,因为这些函数是确定性的并且不会失败.调用业务逻辑:不.