2012-04-13 36 views
0

我想在我的项目中使用把手,但遇到麻烦让它输出每个对象的属性。如何解决胡须块问题?

数据

people: [{"name":"Moe"}, {"name":"Larry"}, {"name":"Curly"}] 

模板

{{#people}} Name: {{name}} <br/>{{/people}} 

输出

Name: 
Name: 
Name: 

显然,它读取列表Ø f人,因为它输出三次。但我不知道为什么它无法看到name的简单路径。

  • 如果我把{{this.name}},它也呈现空白。
  • 如果我把{{this}},我看到[object Object]

如何登录还是让我知道为什么属性没有被渲染调查此对象吗?

回答

0

尝试{{#each people}} Name: {{name}} <br/>{{/each}}

+0

不幸的是,我确实尝试过,结果相同。不过谢谢你。 – 2012-04-13 11:22:32

+0

你如何将数据传递给模板?例如'template(people)'不起作用,但'template({people:people})'可能会用 – 2012-04-13 13:05:53

+0

我用后一种方式。 – 2012-04-14 12:47:51

0

一定出事了你的代码的其余部分,在这拨弄它的工作原理:

http://jsfiddle.net/hDE3P/

var context = { 
    people : [{"name":"Moe"}, {"name":"Larry"}, {"name":"Curly"}] 
} 
var source = $("#entry").text(); 
var template = Handlebars.compile(source); 
$("#out").html(template(context)); 

与这个网站

<script id="entry" type="text/x-handlebars-template"> 
    {{#people}} Name: {{name}} <br/>{{/people}} 
</script> 

output: 
<div id="out"></div> 

尝试这些东西:

  • 检查调试你的数据模型(萤火虫或某事)
  • 检查你的模板是正确的(有时如果没有浏览器破坏它在脚本标记)
  • 调试到把手“每个”处理程序,看看有什么上下文看起来像

希望这会有所帮助。