如何解决胡须块问题?

时间:2012-04-13 03:39:52

标签: templates templating handlebars.js mustache

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

数据

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

模板

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

输出

Name: 
Name: 
Name: 

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

  • 如果我放{{this.name}},它也会显示空白。
  • 如果我提出{{this}},我会看到[object Object]

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

2 个答案:

答案 0 :(得分:0)

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

答案 1 :(得分: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或某事物)
  • 检查您的模板是否正确(如果不是脚本标签,有时浏览器会将其销毁)
  • 调试Handlebars“each”处理程序以查看上下文的内容

希望这有帮助。