2014-04-14 60 views
0

我想在不解析某些变量的情况下制作小胡子JS输出内容。例如:小胡子js输出小胡子js代码

{{block.type}}-{{block.id}}-label-{{element.id}} 

我希望它只是解析块,这就是为什么我给它下面的JSON:

{ block: { type: 'news', id: 23 } } 

最终的结果应该是

news-23-label-{{element.id}} 

但相反它是

news-23-label- 

如何让它不解析代码的一部分?我是Mustache JS的新手,我无法在文档中找到它(评论我了解,如果和foreach我理解,但我找不到)。

回答

2

此替代方法对您有帮助吗? Click为小提琴。

HTML:

<div id="output"></div> 

<script type="text/html" id="test1"> 
    {{block.type}}-{{block.id}}-label-{{block.elId}} 
</script> 

JS:

var output = $("#output"), 
    template = $("#test1").html(), 
    data = '{ "block": { "type": "news", "id": 23, "elId": "{{element.id}}" } }', 
    html = Mustache.render(template, JSON.parse(data)); 

output.append(html); 

输出:

news-23-label-{{element.id}} 
+0

这是一个很好的解决方法,但从一开始就拥有它会很棒 –

0

似乎是可能现在。您可以更改并恢复默认分隔符。从文档的Variables部分例如,你可以在这里找到https://github.com/janl/mustache.js(见最后三行模板):

查看:

{ 
    "name": "Chris", 
    "company": "<b>GitHub</b>" 
} 

模板:

* {{name}} 
* {{age}} 
* {{company}} 
* {{{company}}} 
* {{&company}} 
{{=<% %>=}} 
* {{company}} 
<%={{ }}=%> 

输出:

* Chris 
* 
* &lt;b&gt;GitHub&lt;/b&gt; 
* <b>GitHub</b> 
* <b>GitHub</b> 
* {{company}}