我需要使用Handlebars模板处理一个JSON对象数组(通过Chrome控制台)[object,object,object,object],其中每个对象由以下属性组成:姓名,姓氏等。
我已经了解到,在Handlebars中无法放置对象数组,但我们必须创建一个包含数组中所有对象的所有属性的唯一对象。 请问是否有人可以建议一个函数来创建它?
我需要使用Handlebars模板处理一个JSON对象数组(通过Chrome控制台)[object,object,object,object],其中每个对象由以下属性组成:姓名,姓氏等。
我已经了解到,在Handlebars中无法放置对象数组,但我们必须创建一个包含数组中所有对象的所有属性的唯一对象。 请问是否有人可以建议一个函数来创建它?
当调用模板时,您可以将数组设置为包装对象的属性。
例如,使用objects
作为包装属性。
var an_array = [
{name: "My name"},
{name: "Another name"}
];
var source = /* a template source*/;
var template = Handlebars.compile(source);
var wrapper = {objects: an_array};
console.log(template(wrapper));
您的模板可以按如下方式使用此属性:
<ul>
{{#each objects}}
<li>{{name}}</li>
{{/each}}
</ul>
这是一个演示:http://jsfiddle.net/YuvNY/1/
var an_array=[
{name:"My name"},
{name:"Another name"},
];
var source = $("#src").html();
var template = Handlebars.compile(source);
$("body").append( template({objects:an_array}) );
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<script src="http://builds.handlebarsjs.com.s3.amazonaws.com/handlebars-v2.0.0.js"></script>
<script type='text/template' id='src'></script>
。
(一个点) 调用each
助手函数。 var template = Handlebars.compile(source);
console.log(template(an_array));
<ul>
{{#each .}}
<li>{{name}}</li>
{{/each}}
</ul>
http://jsfiddle.net/nikoshr/YuvNY/32/
var an_array=[
{name:"My name"},
{name:"Another name"},
];
var source = $("#src").html();
var template = Handlebars.compile(source);
$("body").append( template(an_array) );
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<script src="http://builds.handlebarsjs.com.s3.amazonaws.com/handlebars-v2.0.0.js"></script>
<script type='text/template' id='src'></script>