小胡子定制功能

时间:2014-12-21 06:07:16

标签: javascript mustache

试着让小胡子功能起作用,我有这个javascript:

item = {
    email: 'asdfasdaf',
    trim: function(){return function(text, render){ return render(text); }}
    }

以下是我的模板中的内容:

{{#trim}} {{email}} {{/trim}}
<br/>
{{email}}

这只会呈现一次电子邮件值。该函数未被调用。为什么是这样?这是根据我发现的所有文档。

谢谢!

1 个答案:

答案 0 :(得分:0)

您的代码看起来很好。也许你正在设置错误的东西。您的完整代码应如下所示。注意我添加了<b>标签以显示正在调用的函数,第一项是粗体。

var item = {
  email: 'asdfasdaf',
  trim: function() {
    return function(text, render) {
      return '<b>' + render(text) + '</b>';
    }
  }
}

var template = $('#item').html();
Mustache.parse(template);
var rendered = Mustache.render(template, item);
$('#main').html(rendered);
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/mustache.js/2.1.0/mustache.min.js"></script>

<div id="main">
</div>

<script id="item" type="x-tmpl-mustache">
  {{#trim}} {{email}} {{/trim}}
  <br/>{{email}}
</script>