1

ハンドルバーに処理させたいオブジェクトがあります

stock= [
{
  trailer: "TT6565",
  usual  : "Jack",
  group  : "Mercs"

},
{
  trailer: "TT6589",
  usual  : "Paul",
  group  : "Mercs"
}
]

これは一例ですが、私のスクリプトでは ajax リクエストからオブジェクトを作成しています。

これは私のハンドルバーのスクリプトです

<script id="mwl707" type="text/x-handlebars-template">

<div id='vehicles' class='wrapper'>
<div class='divd spacer'>&nbsp</div>

    {{#each stock}}
        <div id='{{group}}' title='Driver Details' class='divd {{group}}' >
        {{trailer}} + "<br>" + {{usual}}
        </div>
    {{/each}}

</div>

</script>

 var source = $("#mwl707").html();
 var template = Handlebars.compile(source);

 $("#thisPage").append(template( stock ));

問題は、 iterate(each) 部分が私のリストを通過しないことです。ハンドルバーはオブジェクトが好きではないと思いますが、これを回避する方法はありますか? またはコードが間違っていますか?何か助けてください?

4

1 に答える 1

5

試す:

{{#each this}}
    <div id='{{group}}' title='Driver Details' class='divd {{group}}' >
        {{trailer}} + "<br>" + {{usual}}
    </div>
{{/each}}

私の例を参照してください: http://jsfiddle.net/svZws/

使用する理由{{#each this}}は、オブジェクトをテンプレートに渡すためです。stockしたがって、テンプレート エンジンのコンテキストでは、オブジェクトthisを参照しますstock

を使用する場合、 stockは関数に渡したオブジェクト内のプロパティ名である{{#each stock}}ことを意味します。template()

于 2013-03-13T16:47:16.020 に答える