对模板中的胡子变量调用方法

Call methods on mustache variable in a template

本文关键字:变量 调用 方法      更新时间:2024-04-19

我有一个胡子模板,我想在胡子变量上调用一些函数(在本例中为{{name}})。具体来说,我想对name变量调用toLowerCase()方法。

<tbody>
  <script id="mytemplate" type="text/template">
    {{#cat}}
      <tr data-index="{{age}}-{{name}}"></tr>
    {{/cat}}
  </script>
</tbody>

我试着看胡子医生,但我不知道该怎么做。我试着做

  1. <tr data-index="{{age}}-{{name.toLowerCase()}}"></tr>
  2. <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);
      });
  })

您需要将函数作为数据的一部分进行传递,如下所示:

$(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>