Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/438.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在Genshi中呈现javascript模板?_Javascript_Templates_Handlebars.js_Mustache_Genshi - Fatal编程技术网

如何在Genshi中呈现javascript模板?

如何在Genshi中呈现javascript模板?,javascript,templates,handlebars.js,mustache,genshi,Javascript,Templates,Handlebars.js,Mustache,Genshi,我想在genshi模板中渲染胡子/把手模板。Genshi似乎提出了一个模板语法错误,因为胡子标签 我已尝试将CDATA标记(如发布的)放置在内部和外部: 这样,浏览器对第一个标记进行注释 另外,使用注释CDATA会引发错误,而在脚本内部使用/**/只会导致Handlebar按原样打印 有没有办法告诉Genshi不要解析模板的chunck 谢谢 不确定这是否有帮助,但我遇到了类似的问题 我有一块正在通过XML解析器运行的标记,它向DOM中添加了一个Handlebar模板,稍后将通过脚本进行编译 为

我想在genshi模板中渲染胡子/把手模板。Genshi似乎提出了一个模板语法错误,因为胡子标签

我已尝试将CDATA标记(如发布的)放置在内部和外部

这样,浏览器对第一个
标记进行注释

另外,使用
注释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>