用胡子做一个for-each?

时间:2013-11-29 09:37:16

标签: javascript handlebars.js mustache

我试图学习胡子,但是不能让这个剧本起作用,而我在Google上找到的指南似乎也没有涵盖这个。

<div id="test"> </div>
<script id="testtpl" type="text/template">
    {{#sheet}}
      {{#.}}    
        {{a}}
      {{/.}}
    {{/sheet}}         
</script>

<script>
  var testing = {
    sheet: {
      'fur': {a: 6, b: 2, item: ['bold']},
      'bur': {a: 6, b: 2, item: ['bold']}
    }
  };
  $(function() {
    var template = $('#testtpl').html();
    var html = Mustache.to_html(template, testing);
    $('#test').html(html);
  });
</script>

1 个答案:

答案 0 :(得分:2)

我想你想要这样的东西

把手模板

{{#eachProp sheet}}
  {{this}}
{{/eachProp}}

上下文或javascript Literal

{
    sheet: {
      'fur': {a: 1, b: 2, item: ['bold']},
      'bur': {a: 5, b: 2, item: ['bold']}
    }
}

把手助手

Handlebars.registerHelper('eachProp', function(context, options) {
  var data,
    out = [];

   console.log(context);

   for (var key in context) {
     out.push(context[key].a);
   }

   out = out.join(',');

  return out;
});

Try Handlebars上尝试这些阻止。现在在网站上玩这个,得到你想要的任何东西。希望这会有所帮助!!