gpt4 book ai didi

javascript - Mustache JS 模板 - 如何在脚本标记字符串中嵌入变量?

转载 作者:数据小太阳 更新时间:2023-10-29 04:18:35 25 4
gpt4 key购买 nike

我刚开始使用 Mustache,到目前为止我很喜欢它,但这让我感到困惑。

我正在使用 GitHub gist API 提取我的 gists,我想做的部分工作是将嵌入功能包含到我的页面中。问题是 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)

如何获取正确的值以嵌入到脚本标签中?

编辑

我正在按如下方式注入(inject)模板(在 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>

我假设 divscript 更合适,因为在任何一种情况下,我都在拉 .html()。这是一个错误的假设吗?

最佳答案

为了避免在 Mustache 中自动转义,请使用 {{{token}}} 而不是 {{token}}。

关于javascript - Mustache JS 模板 - 如何在脚本标记字符串中嵌入变量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9051281/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com