我理解如何在Handlebars中横向数据源,但我遇到了无法解决的情况。
使用“../”可以到达父模板范围,但是当迭代对象的子对象时,它似乎返回对象而不是子对象。
{{#each content.items}}
{{#if prop}}
<p>{{prop}} + {{../../variable}}</p>
{{/if}}
{{/each}}
如果您遍历一个名为“content”的对象,上面的代码片段就可以正常工作,但只要您遍历它的子节点'content.items'它就不再返回正确的范围。
这是一个演示这个问题的小提琴。 http://jsfiddle.net/sidonaldson/MDdn2/
任何人都可以解释什么是错的吗?
答案 0 :(得分:2)
事实证明我原来的想法是错误的。我只在Ember.js的上下文中使用了Handlebars.js。 Ember提供了一些普通把手中没有的额外助手,所以这不是一个选择。但我似乎确实找出了你的问题。查看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
助手似乎有用。希望我能接近你想要的东西。