javascript – Mustache JS Templating – 如何在脚本标记字符串中嵌入变量?

前端之家收集整理的这篇文章主要介绍了javascript – Mustache JS Templating – 如何在脚本标记字符串中嵌入变量?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我刚开始使用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>

Chrome Inspector会显示以下内容

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.f2er.com/js/157467.html

猜你在找的JavaScript相关文章