我有一个小胡子模板,我想在胡子变量上调用一些函数(在本例中为{{name}})。具体来说,我想在名称变量上调用toLowerCase()方法。
<tbody>
<script id="mytemplate" type="text/template">
{{#cat}}
<tr data-index="{{age}}-{{name}}"></tr>
{{/cat}}
</script>
</tbody>
我试着查看胡子文档,但我找不到如何做到这一点。我试着做了
<tr data-index="{{age}}-{{name.toLowerCase()}}"></tr>
<tr data-index="{{age}}-{{name}}.toLowerCase()"></tr>
但我没有得到我的期望。我使用此代码渲染模板,该代码在文档就绪时触发。
$(function() {
$.getJSON('/cats.json', function(data){
var template = $("#mytemplate").html();
var view = Mustache.to_html(template, data);
$("tbody").html(view);
});
})
答案 0 :(得分:7)
您需要将function作为数据的一部分传递,如下所示:
$(function() {
$.getJSON('/cats.json', function(data){
data.lower = function () {
return function (text, render) {
//wrong line return render(text.toLowerCase());
return render(text).toLowerCase();
}
};
var template = $("#mytemplate").html();
var view = Mustache.to_html(template, data);
$("tbody").html(view);
});
})
和模板:
<tr data-index="{{age}}-{{#lower}}{{name}}{{/lower}}"></tr>