如何在Genshi中呈现javascript模板?
我想在genshi模板中渲染胡子/把手模板。Genshi似乎提出了一个模板语法错误,因为胡子标签 我已尝试将CDATA标记(如发布的)放置在内部和外部如何在Genshi中呈现javascript模板?,javascript,templates,handlebars.js,mustache,genshi,Javascript,Templates,Handlebars.js,Mustache,Genshi,我想在genshi模板中渲染胡子/把手模板。Genshi似乎提出了一个模板语法错误,因为胡子标签 我已尝试将CDATA标记(如发布的)放置在内部和外部: 这样,浏览器对第一个标记进行注释 另外,使用注释CDATA会引发错误,而在脚本内部使用/**/只会导致Handlebar按原样打印 有没有办法告诉Genshi不要解析模板的chunck 谢谢 不确定这是否有帮助,但我遇到了类似的问题 我有一块正在通过XML解析器运行的标记,它向DOM中添加了一个Handlebar模板,稍后将通过脚本进行编译 为
:
这样,浏览器对第一个
标记进行注释
另外,使用
注释CDATA会引发错误,而在脚本内部使用/**/
只会导致Handlebar按原样打印
有没有办法告诉Genshi不要解析模板的chunck
谢谢 不确定这是否有帮助,但我遇到了类似的问题 我有一块正在通过XML解析器运行的标记,它向DOM中添加了一个Handlebar模板,稍后将通过脚本进行编译 为了让Handlebar模板通过XML解析器,我需要使用CDATA块进行包装,但这会给您的模板带来类似的问题。如果我将CDATA放在脚本标记中,那么第一个模板标记就会被注释吞没。如果我把它们放在外面,整个模板都会被注释,并且无法通过脚本调用来编译它 我可以通过插入一条HTML注释作为不必要的盾牌来绕过它,就像这样:
<div id="contentChunk">
<div id="blah" class="foo">
Some vanilla HTML being added.
</div>
<script id="hbTemplate" type="text/x-handlebars-template">
<![CDATA[
<!-- blocker comment: first html node of handlebars script gets swallowed. -->
{{#each data.items}}
<div id="item{{id}}">{{{name}}}</div>
{{/each}}
<!-- ]]> -->
</script>
</div>
正在添加一些普通HTML。
{{{#每个数据项}
{{{name}}}
{{/每个}}
我还将尾随的CDATA关闭标记包装在注释中,否则我将得到一个文本]]>来呈现。您可以将CDATA分隔符放在胡须注释中:
{{! }}
(这基本上与对JavaScript脚本使用
//和//]>
的技巧相同。)最后像我的第一个示例一样包装它,然后使用把手。编译($(选择器).html().replace(//,'')
,这并不理想。。。对此有什么想法吗?谢谢你的意见。如果我没记错的话,这也发生在我身上,这就是为什么我在编译模板之前删除了CDATA标记(请查看我在问题中的评论)。Bruno,这是一个很好的建议,但不幸的是(在我的例子中),后面的}破坏了标记的XML验证。可以为根氏工作吗?手柄,但通过jQuery远程获取模板。不幸的是,我无法控制jQuery.ajax调用的数据类型,该调用被设置为“xml”。jQuery内部的XML验证失败了——不管怎样,客户端对标记都很酷。
<![CDATA[
<script id="some-template" type="text/x-mustache-template">
... my template here ...
</script>
]]>
<div id="contentChunk">
<div id="blah" class="foo">
Some vanilla HTML being added.
</div>
<script id="hbTemplate" type="text/x-handlebars-template">
<![CDATA[
<!-- blocker comment: first html node of handlebars script gets swallowed. -->
{{#each data.items}}
<div id="item{{id}}">{{{name}}}</div>
{{/each}}
<!-- ]]> -->
</script>
</div>