1

我正在尝试使用车把。在我使用 each 函数之前,它运行良好。该函数工作正常,但似乎它引用了它所采用的参数的所有内容。因此我无法达到我想要的对象。我认为无论如何,一些代码会更清晰。

<div id="myDiv"></div>

<script type="text/x-handlebars-template" id="handlebar">
    {{#each items}}
    <p>{{this.name}} {{this.surname}}</p>
    <p>{{somethingInTheGeneralContext}}</p>
    {{/each}}
</script>

<script>
    $( document ).ready(function() {
        var source   = $("#handlebar").html();
        var template = Handlebars.compile(source);
        var context = {
            items: [
                {
                    name:"Paul",
                    surname:"Buchon"
                },
                {
                    name:"Pierre",
                    surname:"Bino"
                },
                {
                    name:"Jean",
                    surname:"Duflou"
                }
            ],   
            somethingInTheGeneralContext: "It works !"
        };
        var html = template(context);
        $("#myDiv").html(html);
    });
</script>

这打印:

保罗·布雄

皮埃尔·比诺

让·杜弗洛

而我的 somethingInTheGeneralContext 在某处丢失了......知道如何修复它吗?谢谢!

4

1 回答 1

4

我相信您可以使用{{../param}}打破每个上下文并返回到somethingInTheGeneralContext存在的父级别:

<script type="text/x-handlebars-template" id="handlebar">
    {{#each items}}
    <p>{{this.name}} {{this.surname}}</p>
    <p>{{../somethingInTheGeneralContext}}</p>
    {{/each}}
</script>
于 2013-07-15T13:39:34.267 回答