2017-10-09 156 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