don*_*nut 3 jquery templates mustache
我正在尝试使用小胡子向下面的href附加一个标识符(id)
模板:
<div id='tmpl'>
<a href='#product_detail?'{{id}}>link</a>
</div>
var template = $('#tmpl').html();
Run Code Online (Sandbox Code Playgroud)
数据:
var model = { id: 22 };
Run Code Online (Sandbox Code Playgroud)
使用模型数据渲染模板:
var html = Mustache.to_html(template, model);
Run Code Online (Sandbox Code Playgroud)
结果是:
<a href="#product_detail?%7B%7Bid%7D%7D">link</a>
Run Code Online (Sandbox Code Playgroud)
如果模板更改为:
<div id='tmpl'>
<a href='#product_detail?'{{id}}>link</a>
</div>
Run Code Online (Sandbox Code Playgroud)
生成的模板是:
<a href="#product_detail?" 0="">link</a>
Run Code Online (Sandbox Code Playgroud)
"问题"似乎是jQuery正在将模板中的单引号更改为双引号,这会混淆胡子.将胡须标记放在引号之外也不会给出正确的结果.怎么解决这个问题?
谢谢
小智 9
您需要在href中添加{{id}},如下所示:
href="#product_detail?{{id}}"
Run Code Online (Sandbox Code Playgroud)
我们曾经把我们的胡子模板放在一个带有type ="text/template"的脚本中,我不知道它是否会解决你的逃逸问题,但我们还没有.
<script type="text/template" id="tmpl">
<a href href="#product_detail?{{id}}">link</a>
</script>
Run Code Online (Sandbox Code Playgroud)
如果你遇到了一些逃避问题,请在id之前使用&之前的&:
<script type="text/template" id="tmpl">
<a href href="#product_detail?{{& id}}">link</a>
</script>
Run Code Online (Sandbox Code Playgroud)
希望它有所帮助!