<script id="node">
  <h1>{{title}}</h1>
  <div>
    {{#foo accountList}}
      <h2>{{ name }}</h2>
      <div>{{ desc }}</div>
    {{/foo}}
  </div>
</script>
<div id="container"> 
</div>
Handlebars.registerHelper('foo', function(list, options){
  console.info(list);
  var itemArray = list.map(function(item){
    // 这里的fn已经使用了包裹的助手代码块html标签编译的template函数
    return '<li>' + options.fn(item) + '</li>';
  });
  return '<ul>' + itemArray.join(' ') + '</ul>';
});

var source = $("#node").html();
var template = Handlebars.compile(source);
var context = { 
  title: "我是包裹的块助手代码参数标题" ,
  accountList: [
    {
      name: '小红',
      desc: '小红的描述'
    },
    {
      name: '小绿',
      desc: '小绿的描述'
    },
    {
      name: '小黄',
      desc: '小黄的描述'
    }
  ]
};
var html = template(context);
$('#container').html(html);

External CSS

This Pen doesn't use any external CSS resources.

External JavaScript

  1. https://cdnjs.cloudflare.com/ajax/libs/jquery/3.6.1/jquery.min.js
  2. https://cdnjs.cloudflare.com/ajax/libs/handlebars.js/4.7.7/handlebars.min.js