Handlebars.js-在每个循环、if语句和子对象中获取父上下文
Handlebars.js - Getting parent context within an each loop, an if statement and a child object
我知道如何在Handlebars中遍历数据源,但我偶然发现了一种我无法解决的情况。
使用"../"可以到达父模板作用域,但当遍历对象的子对象时,它似乎返回的是对象而不是子对象。
{{#each content.items}}
{{#if prop}}
<p>{{prop}} + {{../../variable}}</p>
{{/if}}
{{/each}}
如果您遍历一个名为"content"的对象,则上面的代码片段可以正常工作,但只要您遍历它的子对象"content.items",它就不再返回正确的范围。
这里有一把小提琴来说明这个问题。http://jsfiddle.net/sidonaldson/MDdn2/
有人能说明出了什么问题吗?
原来我的想法是错误的。我只在Ember.js的上下文中使用过Handlebars.js。Ember提供了一些在普通Handlebars中不可用的额外助手,所以这不是一个选项。但我似乎确实解决了你的问题。检查一下这把小提琴。
<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
辅助对象似乎起作用了。希望我已经接近你想要的了。
相关文章:
- 在node.js中使用JavaScript从JSON对象获取和设置文本内容
- 如何在JavaScript中基于事件对象获取文件名
- 使用Lodash从JSON对象获取特定于环境的配置
- 从每个父对象获取attr,并为每个子对象设置attr
- 使用javascript从json对象获取父名称
- 从express请求对象获取客户端MAC地址
- 正在从JSON对象获取数组
- 使用生成的键从对象获取数据
- 如何在 C# 中从 JavaScript 对象获取值
- JavaScript |对象:获取属性忍者移动
- 从 CasperJS 中的嵌套 JavaScript 对象获取值
- 从 JSON 对象获取数据时出现问题
- Angularjs 从范围对象获取值
- 以点表示法计算字符串,以从视图中的对象获取相应的值
- 如何测试从promise对象获取数据的控制器
- Javascript-在for循环上从var中的对象获取适当性
- 在javascript中从json对象获取数据
- 如何从每个对象获取jQuery的“title”和“url”值
- 从react routers browserHistory对象获取当前页面路径
- 从Javascript对象获取CSV值