我需要用车把一个json对象数组模板化:(通过chrome控制台)[object,object,object,object]其中每个对象都由以下属性组成:名称,姓氏,ecc。
我知道不可能将对象数组放在车把中,但是我们必须创建具有数组所有对象的all属性的唯一对象。谁能建议我一个函数来创建它
您可以在调用模板时将数组设置为包装对象的属性。
例如,以objects作为持有财产
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'> <ul> {{#each objects}} <li>{{name}}</li> {{/each}} </ul> </script>
或者,您可以将数组直接传递给模板,并each在上下文设置为.(点)的情况下调用帮助程序
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'> <ul> {{#each .}} <li>{{name}}</li> {{/each}} </ul> </script>