javascript - 嵌套的 {{#each}} 不工作

标签 javascript handlebars.js templating

我的 JavaScript 中有以下数组:

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

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

我将这些传递到我的 Handlebars 模板并执行以下操作:

{{#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

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

最佳答案

这是上下文问题。内部 each 位于外部未定义 drinks 的上下文中。

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

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

在这里,我们使用 ../ 回溯到定义了 drinks 的父上下文。

关于javascript - 嵌套的 {{#each}} 不工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46656533/

相关文章:

javascript - Ghost CMS 中的 Foreach 循环返回 null

php - Laravel 5.x 覆盖特定用户的 View

javascript - 通过 AJAX 加载内容后,如何检查 jQuery 中的鼠标处理程序?

javascript - 下拉菜单不粘在 LI Parent 上

javascript - 如何在 Handlebars 模板中使用 {{{{raw-helper}}}}

javascript - 如何在 Shopify 商店中使用 handlebars.js 循环 JSON 数组?

javascript - 单击 slick.js 中的点后停止自动播放

javascript - Angular 1.5.0。通过 ocLazyLoad 使用 UI GRID 重新加载页面时,根模板会重复。 $$animateJs 未定义

html - node.js - 将焊接与 express 一起使用?

javascript - Angular 类似 Handlebars 的模板