2012-07-27 28 views
16

我有模式:如何循环在车把模板阵列没有定义的名称在模型

[ 
    { 
    "ID": 5, 
    "email": "[email protected]" 
    }, 
    { 
    "ID": 6495, 
    "email": "[email protected]" 
    } 
] 

代码在车把迭代:

{{#each xxx}} 
    <p>{{email}}</p> 
    {{/each}} 

我该如何界定XXX?

如果JSON像模型具有名称:

users: [ 
     { 
     "ID": 5, 
     "email": "[email protected]" 
     }, 
     { 
     "ID": 6495, 
     "email": "[email protected]" 
     } 
    ] 

我会简单的迭代像车把:

{{#each users}} 
    <p>{{email}}</p> 
    {{/each}} 
+2

我建议您将接受的答案更改为Dave Stibrany的答案。绝对看起来是更好的方式来做到这一点。 – 2014-06-02 20:22:54

回答

16

如果你有这样的:

var a = [ 
    { 
    "ID": 5, 
    "email": "[email protected]" 
    }, 
    { 
    "ID": 6495, 
    "email": "[email protected]" 
    } 
]; 

然后,只需提供当您调用编译后的模板时需要的名称:

var t = Handlebars.compile($('#t').html()); 
var h = t({ users: a }); 

这将使您在所需的HTML h

演示:http://jsfiddle.net/ambiguous/ZgVjz/

如果从数据建立了一个收集:

var c = new C(a); 

然后你会打电话像这样的模板:

var h = t({ users: c.toJSON() }); 

演示:http://jsfiddle.net/ambiguous/uF3tj/

+3

This works,but the answer from [Dave Stibrany](http://stackoverflow.com/users/546741/dave-stibrany)[below](http://stackoverflow.com/a/17329692/591374)是一个很多解决方案更好 – MusikPolice 2013-11-27 18:43:15

34

This works too:

{{#each this}} 
<p>{{email}}</p> 
{{/each}}