javascript - Handlebars.js - 在每个循环、if 语句和子对象中获取父上下文

标签 javascript handlebars.js

我了解如何在 Handlebars 中横穿数据源,但我偶然发现了一种我无法解决的情况。

使用“../”您可以到达父模板范围,但是当遍历对象的子对象时,它似乎返回对象而不是子对象。

{{#each content.items}}
{{#if prop}}
<p>{{prop}} + {{../../variable}}</p>
{{/if}}
{{/each}}

如果您遍历一个名为“content”的对象,上面的代码片段可以正常工作,但是一旦您遍历它的子对象“content.items”,它就不再返回正确的范围。

这是一个演示问题的 fiddle 。 http://jsfiddle.net/sidonaldson/MDdn2/

任何人都可以阐明问题所在吗?

最佳答案

原来我原来的想法是错误的。我只在 Ember.js 的上下文中使用过 Handlebars.js。 Ember 提供了一些在普通 Handlebars 中不可用的额外助手,因此这不是一个选项。但我似乎确实弄清楚了你的问题。检查this fiddle.

<p>IN CONTENT</p>
{{#with content}}
{{#each items}}
{{#if prop}}
<p>{{prop}} + {{../../variable}}</p>
{{/if}}
{{/each}}
{{/with}}
<p>OUTSIDE CONTENT</p>
{{#each items}}
{{#if prop}}
    <p>{{prop}} + {{../../variable}}</p>
{{/if}}
{{/each}}

我不确定为什么它首先不起作用,但是使用 with 帮助器,然后 each 帮助器似乎起作用了。希望我已经接近你想要的。

关于javascript - Handlebars.js - 在每个循环、if 语句和子对象中获取父上下文,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17945998/

相关文章:

javascript - 将 react-markdown 与 Material-UI 表一起使用

javascript - Handlebars 绑定(bind)属性

javascript - Express.JS Handlebars 路径问题

javascript - 使用 Nodejs 和 Mongoose 删除请求

javascript - Electron 应用程序窗口在最小化、最大化和关闭事件时仍然有动画

javascript - 如何更换 child 的 Prop ?

javascript - 如何检查(选择)ARIA-menuitemcheckbox(javascript)中的元素?

javascript - 将 javascript 数组映射到高度间隙数组

javascript - Handlebars 包裹 &lt;!DOCTYPE html>

javascript - 在 Node js 上使用 axios、cheerio 和 handbars 抓取多个域