0

我正在尝试在我的项目中使用把手,但是在让它输出每个对象的属性时遇到了麻烦。

数据

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

模板

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

输出

Name: 
Name: 
Name: 

它显然会读取人员列表,因为它输出了 3 次。但我不知道为什么它看不到简单的路径name

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

如何记录或调查此对象,以便知道为什么未呈现name属性?

4

2 回答 2

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) );

用这个 html

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

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

试试这些东西:

  • 在调试器中检查您的数据模型(Firebug 或 sth.)
  • 检查您的模板是否正确(如果不在脚本标签中,有时浏览器会破坏它)
  • 调试 Handlebars “每个”处理程序以查看上下文的样子

希望这可以帮助。

于 2014-01-03T13:06:42.533 回答
0

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

于 2012-04-13T07:26:59.597 回答