去模板引擎也可以在浏览器中运行

时间:2015-04-08 16:14:05

标签: javascript go template-engine

我正在服务器上使用Go开发Web应用程序,路由器将使用PushState,因此服务器也必须能够呈现我的模板。这意味着我需要一个与Go和Javascript一起使用的模板引擎。到目前为止我遇到的唯一一个是Mustache,但它似乎无法处理结构的小写属性,并且似乎也没有可能提供像JSON这样的自定义名称:

type Person struct {
    Name string `json:"name"`
    Age  int    `json:"age"`
}

那么,Go和JavaScript中是否有一个模板引擎可以处理小写结构属性?

1 个答案:

答案 0 :(得分:0)

正如上面的评论所述,您不能指望任何第三方库能够读取结构上的小写属性,但看起来您正在尝试使用标记来表示结构的替代表示(就像您可以使用encoding/json库。)

您可以使用github.com/fatih/structs之类的内容将结构转换为地图,然后将所有键的范围缩小到小写(复制值并删除大写版本)并将其传递给{{1}作为你的背景。如果你想使用像mustache.Render()库这样的struct标签,你必须使用encoding/json包并编写一个struct-to-map函数,该函数考虑了struct上的标记(basic文档here中给出的示例。关于如何使用反射编写struct-to-map函数,有一些SO答案,你可以根据需要改进结构标记处理。

为了回答你的问题,我认为这不是当前模板库所做的,也适用于javascript,但考虑到上述想法,使用胡子不应该太难。