如何使用传递给模板的把手数组

时间:2014-04-02 22:50:44

标签: javascript jquery arrays json handlebars.js

我有一个包含简单数组的变量,例如:

var terms = ["1 year", "2 years"]

我试图通过这样做将其传递给我的车把模板:

var template = Handlebars.compile( $('#template').html() );

$('div.container').append(template(terms)).append(template(data));

但我不知道如何访问模板中的terms。我试过了:

{{#each terms}}
     {{this}}
{{/each}}

我可以使用以下内容从ajax调用访问data

 {{#each this}}
     {{column_name}}
{{/each}}

但我对如何访问我追加的变量感到困惑。那么,是否有更简洁的方法将数据变量添加到上下文中?我是Handlebars的新手,这是我看到代码设置的唯一方法。感谢

1 个答案:

答案 0 :(得分:0)

这是更多的胡子口味,但它应该解决你的问题:

<script id="tmp" type="text/x-template">
     <div>
        {{#terms}}
            <p>
                {{.}}
            </p>
        {{/terms}}
    </div>
</script>

var data = {terms: ['1 year', '2 years']};
var template = document.getElementById("tmp").innerHTML;
var templateCompile = Handlebars.compile(template);
var result = templateCompile(data);

console.log(result) // <div><p>1 year</p><p>2 years</p></div>

Fiddle