我将结构传递给模板,该模板有时包含的字符串有时显示太长。用任何其他语言,我都会在模板本身中附加一个格式规则。在模板中完成格式化的惯用方法是什么?
例:
type struct MyStruct{
something string
anotherThing string
}
在模板中
<table>
{{ range .Rows }} //NOTE! Rows is an array of MyStruct objects
<tr>
<td>{{ .something }}</td>
<td>{{ .anotherThing }}</td>
</tr>
{{ end }}
</table>
如果从上面看不出来,那么问题是“您将如何确保.anotherThing或.something的显示不超过40个字符?
一种解决方案可能是使结构包含四个值,两个原始字符串以及它们的两个格式化版本,即在.go文件中进行格式化,然后始终在悬停时或类似的工具提示中显示原始字符串。
您可以向FuncMap添加自定义的截断函数。有人在操场上发布了一个示例,该示例将模板变量转换为大写,如下所示:
{{ .Name | ToUpper }}
编辑。调整以上代码作为基本Truncate
过滤器:http : //play.golang.org/p/e0eaf-fyrH
{{ .Name | Truncate }}
如果您要将参数传递给Truncate
,也可以这样编写:
{{ Truncate .Name 3 }}
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句