我试图将值放入“标题”模板中,例如标题和导航链接,但无法访问我从包含的模板发送到主模板的变量。
渲染模板:
...
templateName := "index"
args := map[string]string{
"Title": "Main Page",
"Body": "This is the content",
}
PageTemplates.ExecuteTemplate(w, templateName+".html", args)
...
index.html模板:
{{template "header"}} <-- Including the "header.html" template
{{.Body}} <-- Variable that works
{{template "footer"}} <-- Does not matter!
header.html模板:
{{define "header"}}
<!DOCTYPE html>
<html lang="en">
<head>
<title>{{.Title}}</title> <-- Variable empty :(
</head>
<body>
{{end}}
显然,它不会那样工作。
也许有一种方法可以解析/获取模板并将变量放入其中,而无需将整个头文件放入代码中?然后,我可以将该模板作为变量发送到我的主模板。但这似乎并不是最好的方法。
您可以在调用模板时将上下文传递给模板。在您的示例中,更改{{template "header"}}
为{{template "header" .}}
应该足够。
官方文档的相关部分:
{{template“ name”}}
使用零数据执行具有指定名称的模板。{{模板“名称”管道”}}
执行指定名称的模板,将点设置为管道的值。
PS:这是不相关的问题,但你也应该删除换行符之间{{define "header"}}
和<!DOCTYPE html>
,使DOCTYPE是真的在你的模板中的第一件事情。
问题内容: 在以下情况下如何使用包含。目的是在html(部分)文件中使用标记,而不是在模板中(在指令内)定义标记。 我在这里找到了一个很棒的树指令。( 来源)原文: http //jsfiddle.net/n8dPm/ 我没有在指令中定义模板,而是尝试使用包含在内的内容。我还将Angular更新为1.2.0.rc2。更新时间:http://jsfiddle.net/aZx7B/2/ 低于错误 Ty
问题内容: 我在主布局文件中有这个 我的目录结构中有header.html部分模板。 如何在我的应用程序中包含此模板?我认为angular在处理完控制器后会自动包含模板,但是它不起作用。 标头节点应替换为此文件的内容。 问题答案: 包含来自外部文件的模板/ html片段的一种方法是使用指令(doc)。 要么
在angular 2中,我需要创建一个包含冗余部分的大型html模板。因此,我想创建多个html模板,并通过将它们包含在主html文件中(如angular1中的ng include)将它们放在一起 但是如何在主模板中包含子模板? 例如: - -
对于多个页面包含的公共内容,可能会被封装到一个公共模板文件中。 比如左侧导航,文件位置和其他普通模板是一样的,/App1/View/Home/Nav.left.html 其他模板引用局部模板使用标签:{include:模块名称:操作名称} //比如:{include:Public:header} 本文中引用左侧导航模板:{include:Nav:left} //两边是大括号,中间是冒号。 注:局
是否有一种方法可以将Thymeleaf模板存储在与类相同的包中而不是或?例如,这样的结构: 为了实现这一点,我必须如何配置Spring和Thymeleaf?
template.defaults.imports 模板通过 $imports 可以访问到模板外部的全局变量与导入的变量。 导入变量 template.defaults.imports.log = console.log; <% $imports.log('hello world') %> 内置变量清单 $data 传入模板的数据 $imports 外部导入的变量以及全局变量 print 字符