0

例として、次のデータセットがあります

  dataset = {header: ' header' } 

  dateline = { content: 'list of dates' } 

  monday = [
        { food:'teacake' , drink:'orange' } 
        ]

  tuesday = [
        { food:'eggs' , drink:'beer' } 
        ]    

  dateline.monday = monday
  dateline.tuesday = tuesday
  dataset.dateline = dateline 

私がやりたいのは、ハンドルバーを使って日々を走ることです。これは、子を使用して実行できると思いました。

  <script id="mwl707" type="text/x-handlebars-template">        
  {{#each dateline.children }}
    <span>{{food}} : {{drink}}</span>
  {{/each}}
  </script>

しかし、私はそれを機能させることができません。何か助けてください。 JSフィドル

4

2 に答える 2

1

動作するようにフィドルを更新しました:http://jsfiddle.net/AgCBb/1/

月曜日と火曜日のオブジェクトを再び[]括弧で囲むべきではありません。解析する必要のない余分なレベルです。配列はハンドルバーで解析するのがはるかに簡単なので、親オブジェクトで日の配列を作成するだけです。

dataset = {header: ' header' } //
dateline = { content: 'list of dates' } 
monday  =  { "food":"teacake" , "drink":"orange" }
tuesday = { "food":"eggs" , "drink":"beer" }

dateline.days = []
dateline.days.push(monday)
dateline.days.push(tuesday)

次に、次のように解析できます。

{{#dateline.days }}
  <span>{{food}} : {{drink}}</span>
{{/dateline.days}}

また、有効な JSON をテンプレートに渡すようにしてください。不明な場合は、http://jsonlint.com/で JSON を確認してください。

于 2013-03-17T16:09:37.913 に答える
0

Handlebars には、オブジェクトのプロパティを反復する組み込みの方法はありません。Handlebars/Mustache - Is there a built in way to loop through an object? を参照してください。. 代わりに、Handlebars がプレーン配列などをサポートするような方法でデータをフォーマットできます。ここではコードを複製しません。リンクされた投稿にあります。

<script>また、フィドルの JavaScript プレーン内にタグを配置しないでください。External Resources代わりにセクションを使用してください。

于 2013-03-17T15:57:05.457 に答える