我刚开始使用Mustache,到目前为止我喜欢它,但这让我感到困惑.
我正在使用GitHub gist API来提取我的要点,我想做的部分内容是将嵌入功能包含在我的页面中.问题是Mustache似乎不想与我的动态脚本标签有任何关系.
例如,这很好用:
<div class="gist-detail"> {{id}} <!-- This produces a valid Gist ID --> </div>
此外,这非常有效:
<div class="gist-detail"> <script src='http://gist.github.com/1.js'></script> <!-- Produces the correct embed markup with Gist ID #1 --> </div>
如果我试图把它们拉在一起,那就会出现严重错误:
<div class="gist-detail"> <script src='http://gist.github.com/{{id}}.js'></script> <!-- Blows up! --> </div>
GET https://gist.github.com/%7B%7Bid%7D%7D.js 404 (Not Found)
…看起来像我的东西是逃避或诸如此类的奇怪,所以我切换到原始语法:
<div class="gist-detail"> <script src='http://gist.github.com/{{{id}}}.js'></script> <!-- Blows again! --> </div>
我在Inspector中得到了相同的结果:
GET https://gist.github.com/%7B%7B%7Bid%7D%7D%7D.js 404 (Not Found)
编辑
我按如下方式注入模板(在document.ready中:
function LoadGists() { var gistApi = "https://api.github.com/users/<myuser>/gists"; $.getJSON(gistApi,function (data) { var html,template; template = $('#mustache_gist').html(); html = Mustache.to_html(template,{gists: data}).replace(/^\s*/mg,''); $('.gist').html(html); }); }
实际模板是在ruby部分内部,但是它包含在div中(不是脚本标记,这是一个问题?)(隐藏):
<div id="mustache_gist" style="display: none;"> {{#gists}} <!-- see above --> {{/gists}} </div>
我假设div是好的而不是脚本,因为在任何一种情况下,我都拉着.html().这是一个不好的假设吗?
解决方法
要避免在Mustache中自动转义,请使用{{{token}}}而不是{{token}}.
原文地址:https://www.jb51.cc/js/157467.html
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。