【问题标题】:handlebars.js: relative paths in partials not working [duplicate]handlebars.js:部分中的相对路径不起作用[重复]
【发布时间】:2014-09-12 12:59:39
【问题描述】:

我用部分替换了我文件中的一些重复代码,但现在相关部分的调用不再起作用了。

我有这个数据结构:

var data = { staff: [
         {"name": "Alan"},
         {"name": "Bettina"}
         ],"company": "Rad, Inc."};

原始模板如下所示:

<script id="first_template" type="text/x-handlebars-template">
 {{#each staff}}
     <li>Name: {{name}} , Company: {{../company}}</li>
 {{/each}}
 </script>

我改成这样使用部分:

<script id="list-partial" type="text/x-handlebars-template">
  <li>Name: {{name}} , Company: {{../company}}</li>
</script>

<script id="second_template" type="text/x-handlebars-template">
 {{#each staff}}
    {{> list}}
 {{/each}}
</script>

在带有部分公司名称的示例中,不会呈现公司名称。我在 jsfiddle 上放了一个工作示例:http://jsfiddle.net/staeff/qwms6h2b/

有谁知道,为什么它不起作用,我想做什么?

【问题讨论】:

  • 因为 partials 有自己的上下文,你传入的。构造 {{&gt; list}} 等价于 {{&gt; list this}}
  • 您好raidendev,感谢您的回答。我已经阅读了上下文,但仍然感到困惑。对于我想做的事情,this 不是正确的上下文吗?
  • 问题出在{{../company}} 构造中,因为您在部分中没有上../ 级别。解决此问题的方法之一是将#each 移动到部分内部并将其命名为“staffList”。但正确的方法是重构你的数据结构。

标签: handlebars.js


【解决方案1】:

由 cmets 中的 raidendev 回答

问题出在 {{../company}} 构造中,因为部分中没有上层 ../ 。解决此问题的方法之一是将#each 移动到部分内部并将其命名为“staffList”。但正确的方法是重构你的数据结构。 ——raidedev

好的,我发现我的问题已经在 stackoverflow 上讨论并解决了,但我不知道要搜索什么。有关我的确切问题的解决方案,请参阅问题 handlebars - is it possible to access parent context in a partial?

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-07-12
    • 2016-06-30
    • 2011-07-19
    • 2013-06-30
    • 2011-01-25
    • 2013-02-19
    • 2015-08-30
    • 2011-03-17
    相关资源
    最近更新 更多