将变量传递给嵌套的Handlebars模板/部分

时间:2015-12-15 22:53:10

标签: javascript handlebars.js

我有这样的背景:

{
  path: "/some/path/to/files/",
  sections: [
    {
      title: "Title 1",
      files: [
        { name: "file1.zip" },
        { name: "file2.zip" }
      ]
    }
  ]
}

我的模板和部分:

<!-- Global container template -->
<script id="container-template" type="text/x-handlebars-template">
    {{#each sections}}
        {{> sectionPartial }}
    {{/each}}
</script>

<!-- Section partial -->
<script id="section-partial" type="text/x-handlebars-template">
    <h2>{{ title }}</h2>
    <ul>
        {{#each files}}
            {{> filesPartial }}
        {{/each }}
    </ul>
</script>

<!-- Files Partial -->
<script id="files-partial" type="text/x-handlebars-template">
    <li>
        <!-- Below is where I need to use the path value -->
        <a href="{{ path }}{{ name }}>{{ name }}</a> 
    </li>
</script>

最后,我想将path添加到href中的files-partial。但它在另一部分的嵌套部分中。我该如何访问该值?我试过这个:

...
{{> sectionPartial path=path }}
...

...
{{> filesPartial path=path }}
...

认为它会将path值传递给部分,但它没有。我在这里缺少什么?

一个相关的问题,如果我在JavaScript中的某处声明了随机变量,我如何在模板和部分中访问该JavaScript变量?

1 个答案:

答案 0 :(得分:5)

你走在正确的轨道上,但路径需要

{{> filesPartial path=../path}}

这是一个小提琴。 https://jsfiddle.net/18fjdq2e/1/