Ste*_*one 28 json handlebars.js
我需要用把手模板一个json对象的数组:(通过chrome控制台)[对象,对象,对象,对象]其中每个对象由这个属性组成:name,surname,ecc.
我已经明白将把对象放在把手中是不可能的,但我们必须用数组所有对象的所有属性创建一个唯一的对象.任何人都可以建议我创建它的功能
nik*_*shr 91
您可以在调用模板时将数组设置为包装器对象的属性.
例如,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));
Run Code Online (Sandbox Code Playgroud)
并且您的模板可以使用此属性,如下所示:
<ul>
{{#each objects}}
<li>{{name}}</li>
{{/each}}
</ul>
Run Code Online (Sandbox Code Playgroud)
和演示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}) );Run Code Online (Sandbox Code Playgroud)
<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>Run Code Online (Sandbox Code Playgroud)
或者你可以直接将数组传递给模板并调用each帮助器,并将上下文设置为.(一个点)
var template = Handlebars.compile(source);
console.log(template(an_array));
Run Code Online (Sandbox Code Playgroud)
<ul>
{{#each .}}
<li>{{name}}</li>
{{/each}}
</ul>
Run Code Online (Sandbox Code Playgroud)
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) );Run Code Online (Sandbox Code Playgroud)
<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>Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
38488 次 |
| 最近记录: |