2017-10-09 100 views
0

我已经在我的JavaScript以下阵列:嵌套{{#each}}不工作

let food = [ 
    'taco', 
    'burrito', 
    'hamburger', 
    ] 

let drinks = [ 
    'water', 
    'milk', 
    'soda', 
    ] 

我通过这些我把手模板,我这样做:

{{#each food as |food|}} 
    {{food}} 
    {{#each drinks as |drink|}} 
    {{drink}} 
    {{/each}} 
{{/each}} 

但只打印出

taco burrito hamburger 

我期望的输出是这样的(分开成新行的可读性)

taco 
water 
milk 
soda 
burrito 
water 
milk 
soda 
hamburger 
water 
milk 
soda 

它似乎完全忽略了嵌套的每个循环。这里有什么问题?

+0

你的预期输出是什么 –

+0

我加了它。这是一个循环内的循环。这不清楚吗? –

+1

[Handlebars嵌套'每个'语法的可能重复 - 不遍历每个元素](https://stackoverflow.com/questions/17197731/handlebars-nested-each-syntax-not-iterating-over-ee-element) – cwallenpoole

回答

4

这是一个上下文问题。内部的each在外部环境中,其没有定义drinks

这是一个工作模板的例子;

{{#each food as |food|}} 
    {{food}} 
    {{#each ../drinks as |drink|}} 
    {{drink}} 
    {{/each}} 
{{/each}} 

在这里,我们使用../回溯到上一级上下文,其中drinks定义。

+0

哦,我不知道'each'循环的范围是这样的。谢谢! –

+0

如果这解决了问题,@JakeWilson,不要忘记upvote /打勾答案:) – Shadow