使用小胡子填写html标记参数

时间:2011-11-15 13:59:55

标签: jquery templates 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正在将模板中的单引号更改为双引号,这会混淆小胡子。将胡须标记放在引号之外也不会给出正确的结果。怎么解决这个问题?

由于

2 个答案:

答案 0 :(得分:9)

您需要在href中添加{{id}},例如:

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

我们曾经把我们的小胡子模板放在一个带有type =“text / template”的脚本中,我不知道它是否会解决你的逃避问题,但我们还没有。

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

如果您遇到一些逃避问题,请使用&amp;在id之前:

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

希望有所帮助!

答案 1 :(得分:0)

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

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