我正在使用twitter Hogan.js Mustache templating language的实现。什么是<
标签?
您可以在compiler.js line 341中看到对该标记的引用:
'<': function(node, context) {
var ctx = {partials: {}, code: '', subs: {}, inPartial: true};
Hogan.walk(node.nodes, ctx);
var template = context.partials[createPartial(node, context)];
template.subs = ctx.subs;
template.partials = ctx.partials;
},
本节内容的评论不多,我无法弄明白。
如果我在模板中使用<
标记,该怎么做?
答案 0 :(得分:1)
经过大量谷歌搜索后,我找到了答案,这是一个聪明的模板继承方法(正如我所希望的那样)。
我找到了this issue&amp;随附gist,它解释了问题及其建议的解决方案。看来这个功能已经在hogan.js中实现了,但还不是官方Mustache规范的一部分。
此功能不适用于npm(2.0.0)上当前发布的版本,而是需要使用github上的3.0.0版。版本2只对待<
&amp; >
同样。
主模板( template.html ):
<html>
<head>
<title>{{$title}}Default Title{{/title}}</title>
</head>
<body>
{{$content}}<p>Default Content</p>{{/content}}
</body>
</html>
内容模板( content.html ):
{{<template}}
{{$title}}Override title{{/title}}
{{$content}}
<div>
<h1>Override Content</h1>
</div>
{{>anotherPartial}}
{{/content}}
{{/template}}
现在您需要做的就是渲染 content.html ,它将包含在 template.html 中,如下所示:
<html>
<head>
<title>Override title</title>
</head>
<body>
<div>
<h1>Override Content</h1>
</div>
{{>anotherPartial}}
</body>
</html>
请注意使用$
标记替换为content.html
中的相同标记。
此功能使得以多种格式呈现视图非常容易,可能适用于不同的设备。它还消除了对动态部分名称的需求(正如许多人想要的那样)。