问题标签 [go-templates]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
templates - Calling a template with several pipeline parameters
In a Go template, sometimes the way to pass the right data to the right template feels awkward to me. Calling a template with a pipeline parameter looks like calling a function with only one parameter.
Let's say I have a site for Gophers about Gophers. It has a home page main template, and a utility template to print a list of Gophers.
http://play.golang.org/p/Jivy_WPh16
Output :
Now I want to add a bit of context in the subtemplate : format the name "Dewey" differently inside the list because it's the name of the currently logged user. But I can't pass the name directly because there is only one possible "dot" argument pipeline! What can I do?
- Obviously I can copy-paste the subtemplate code into the main template (I don't want to because it drops all the interest of having a subtemplate).
- Or I can juggle with some kind of global variables with accessors (I don't want to either).
- Or I can create a new specific struct type for each template parameter list (not great).
go - 遍历 Go 文本模板中的地图
我有一个map
看起来像这样的值:
我的模板应该是什么样子才能生成以下字符串(注意正确的逗号用法)?
我从这个作为我的模板开始:
但这只是打印出来
即使这确实有效,逗号也是不正确的。然后我尝试使用自定义函数来格式化地图,但我无法让模板调用我的函数。以下似乎都不起作用:
当 MyFunction 被定义为:
我正在使用如下所示的辅助函数执行模板:
谢谢!
interface - 界面中存在不相关的方法会破坏文本/模板?
游乐场链接:http ://play.golang.org/p/Ebf5AuJlcP
当我渲染一个包含 的模板(通过text/template
包){{ .Something.Name }}
时,我可以通过Foo
不包含任何方法的接口,它工作正常。但是,如果我Bar
改为通过界面,我会得到:
为什么界面上存在甚至没有使用的不相关方法会影响模板的呈现?
go - 使用动态名称调用其他模板
我看不到使用动态名称调用模板(文本或 html)的方法。例子:
这有效:
此错误与“模板调用中的意外“$BlahVar””:
我要解决的总体问题是我需要根据配置文件有条件地渲染模板 - 所以我不知道模板的名称提前。显然,我可以在 FuncMap 中放置一个函数,它只进行单独的模板解析和调用并返回该结果,但想知道是否有更好的方法。
go - 遍历模板中的地图
我正在尝试显示健身课程列表(瑜伽、普拉提等)。每种课程类型都有几个课程,所以我想将所有瑜伽课程和所有普拉提课程等分组。
我做了这个函数来截取切片并制作它的地图
现在的问题是如何遍历它,根据http://golang.org/pkg/text/template/,您需要以.Key
格式访问它,我不知道密钥(除非我也传递了一个切片模板中的键)。如何在我的视图中解压缩此地图。
我目前只有
显示如下内容:
go - 如何打印函数的返回值?
这是我的函数定义,它返回一个字符串
"addClassIfActive": func(tab string, ctx *web.Context) string
我正在尝试像这样打印它:
<a href="/home/"{{ printf "%s" addClassIfActive "home" .Context }}>Home</a>
当我尝试打印时,http 响应正在终止。
我究竟做错了什么?
返回一个布尔值,然后使用 if 工作,我仍然很好奇如何打印从函数返回的字符串
go - 如何在 golang 模板上打印 JSON?
我在客户端需要一个对象,所以我使用 json.marshal 将其转换为 JSON 并将其打印到模板中。该对象被打印为转义的 JSON 字符串。
我期待它,var arr=["o1","o2"]
但它是var arr="[\"o1\",\"o2\"]"
我知道我可以 JSON.parse 在客户端,但这是唯一的方法吗?
这是我在模板中打印它的方式:
{{ marshal .Arr }}
这是我的元帅功能:
go - 模板范围中的最后一项
给定模板:
这可以输出:
但是,如果我想输出:
我需要知道上面范围内的最后一个元素。
我可以设置一个变量来保存数组的长度.SomeField
,但它始终为 3,并且$i
上面的值只会达到 2。根据我所见,您无法在模板中执行算术运算。
是否可以检测模板范围内的最后一个值?干杯。