使用mustache填充html标签参数



我正在尝试使用mustache

将标识符(id)附加到下面的href。

模板:

<div id='tmpl'>
    <a href='#product_detail?'{{id}}>link</a>
</div>    
var template = $('#tmpl').html();

数据:

var model = { id: 22 };

使用模型数据呈现模板:

var html = Mustache.to_html(template, model);

结果:

<a href="#product_detail?%7B%7Bid%7D%7D">link</a>

如果模板更改为:

<div id='tmpl'>
    <a href='#product_detail?'{{id}}>link</a>
</div>

结果模板为:

<a href="#product_detail?" 0="">link</a>

这个"问题"似乎是jQuery正在改变单引号在模板双引号混淆胡子。将mustache标签放在引号之外也不会给出正确的结果。如何解决这个问题?

谢谢

您需要在href中添加{{id}},如下所示:

href="#product_detail?{{id}}"

我们用type="text/template"把我们的mustache模板放在一个脚本中,我不知道它是否会解决你的转义问题,但是我们这里没有。

<script type="text/template" id="tmpl">
   <a href href="#product_detail?{{id}}">link</a>
</script>

如果您遇到一些转义问题,请使用&在id前面:

<script type="text/template" id="tmpl">
   <a href href="#product_detail?{{& id}}">link</a>
</script>

希望有帮助

我解决了这个问题,将${id}而不是{{id}}放入属性中例:

<button class="fisherytiles" type="button" data-myid="${Id}" id="imagelink">

最新更新