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) でデータモデルを確認します。
  • テンプレートが正しいことを確認してください (スクリプト タグに含まれていない場合、ブラウザがテンプレートを破棄することがあります)。
  • ハンドルバーの「各」ハンドラーにデバッグして、コンテキストがどのように見えるかを確認します

お役に立てれば。

于 2014-01-03T13:06:42.533 に答える
0

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

于 2012-04-13T07:26:59.597 に答える