我相信我需要一个定制的Handlebars.js块Helper来处理基于Bootstrap的网格系统中的行。我希望每3个项目被包装在<div class="row"></div>
中。
期望输出
<div class="row">
<div class="col-sm-4">...</div>
<div class="col-sm-4">...</div>
<div class="col-sm-4">...</div>
</div>
模板:
{{#employees}}
<div class="col-sm-4">
<strong>{{name}}</strong><br>
{{title}}<br>
{{skills}}
</div>
{{/employees}}
数据
var data = {
"employees" : [
{
"name":"Fred Flintstone",
"title":"Frontend Developer",
"skills" : "html,css,javascript"
},
{
"name":"Sally Struthers",
"title":"Frontend Developer",
"skills" : "html,css,javascript"
},
{
"name":"Ben Wilson",
"title":"Frontend Developer",
"skills" : "html,css,javascript"
},
{
"name":"Julie Milson",
"title":"Frontend Developer",
"skills" : "html,css,javascript"
},
{
"name":"Mike Barton",
"title":"Frontend Developer",
"skills" : "html,css,javascript"
}
]
}
辅助概念
这是我的想法,但我需要帮助 :)
// pass data and how many per row
Handlebars.registerHelper('gridWrap', function(data,perRow) {
var wrapper = "";
// need index
if(index == 0 || index % perRow == 0) {
wrapper += '<div class="row">';
}
if((index + 1) % perRow == 0 || (index + 1) == data.length) {
wrapper += '</div>';
}
return wrapper;
});
如何使用?
一旦构造了helper,您将如何在HTML中使用它?
{{#employees}}
{{#gridWrap employees 3}} {{wrapper}} {{/gridWrap}}
<div class="col-sm-4">
<strong>{{name}}</strong><br>
{{title}}<br>
{{skills}}
</div>
{{#gridWrap employees 3}} {{wrapper}} {{/gridWrap}}
{{/employees}}