2012-04-13 10 views
0

私のプロジェクトでハンドルバーを使用しようとしていますが、各オブジェクトの属性を出力するのに問題が発生しています。口ひげブロックのトラブルシューティングを行うにはどうすればよいですか?

データ

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

テンプレート

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

出力

Name: 
Name: 
Name: 

これは明らかに、リスト0を読み込み、それは3回出力されるからです。私はなぜそれがnameへの単純な経路を見ることができないのか分からない。

  • {{this.name}}と入力すると、空白が表示されます。
  • {{this}}と入力すると、[object Object]と表示されます。

属性がレンダリングされていない理由を私は知っているので、どのように私は、このオブジェクトを記録したり、調査していますか?

答えて

0

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

+0

残念ながら、私は同じ結果でそれを試しました。ありがとう、結構です。 –

+0

どのようにデータをテンプレートに渡していますか?たとえば 'template(people)'は動作しませんが、 'template({people:people})'おそらく –

+0

私は後者の方法を使用しています。 –

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を。)
  • テンプレートをチェックしてくださいが正しいかを確認する「各」ハンドラハンドルバーへ
  • デバッグを(ない場合は時々ブラウザがスクリプトタグでそれを破壊します)コンテキストは次のようになります

希望します。

関連する問題